如何在python中拆分文件

Posted

技术标签:

【中文标题】如何在python中拆分文件【英文标题】:How to split a file in python 【发布时间】:2016-09-23 13:31:06 【问题描述】:

我正在尝试拆分 2 个列表,比较它们并创建一个新列表,但没有成功比较 2 个列表中的项目。

所以说 List_1.txt =

Failed = abc
Failed = hfi
Failed = kdi

和 List_2.txt =

1:1:1 - jdsfjdf
2:2:2 - iidf
3:3:3 - abc
6:3:1 - hfi
8:2:1 - kdi
3:1:5 - dua
3:1:2 - dfh

我想比较这些列表并创建一个没有 list_1 条目的 new_list2。

我尝试的是:

treinrit = open('List_1', 'r')
lijna = treinrit.readlines()
treinrit.close()

annuleer_treinrit = open('List_2', 'r')
lijnb = annuleer_treinrit.readline()
annuleer_treinrit.close()

lijsta = []
lijstb = []

for a in lijna:
    clean = a.split(' - ')
    print(lijsta)

for b in lijnb:
    lijstb.append(lijnb.split(": "))

我只是无法正确拆分列表。我只需要比较每个文件的最后一位,但我不知道如何。

【问题讨论】:

您是否在 SO 上查看过此页面:***.com/questions/546508/… 希望对您有所帮助 你能展示你想要的最终结果吗? @Hoopdady list_2 没有 abc、hfi 和 kdi。 没有整行还是没有那些字符串?就像3:3:3 - abc 一样,您会删除整行,还是只删除abc,这样该行就会显示为3:3:3 - 【参考方案1】:

类似的东西

bad_stuff = []
with open('List_1', 'r') as fn:
    for line in fn:
        bad_stuff.append(line.split('=')[1].strip())


with open('List_2', 'r') as fn:
    for line in fn:
        if line.split(':')[1].strip() not in bad_stuff:
            print(line)

bad_stuff 列表将包含= 符号后第一个文件中的所有元素(如abchfikdi

然后检查第二个文件,只有:符号后面的部分不在bad_stuff列表中时才打印

【讨论】:

谢谢你,这对我帮助很大。 [1].strip 到底是做什么的? strip() 删除前导和尾随空格和换行符。有像rstrip() 这样的命令,它删除了'right',所以尾随空格和换行符(你可以猜到还有 lstrip())。 啊 tahnks 很多!和[1]?是加空格还是什么的? [1] 是一个索引。当您在字符串上调用split() 时,它会拆分字符串,并将其放入list 在我们的例子中,列表将有两个元素,我们只需要第二个元素。在大多数编程语言中,列表索引从 0 开始编号。所以list[0] 会给你第一个元素,list[1] 会给你第二个【参考方案2】:
with open('File1', 'r') as f1:
    f1_stored = []
    for line in f1:
        f1_stored.append(line.split('=')[1].strip())
    with open('File2', 'r') as f2;
        output = []
        for line in f2:
            if not any(failed in line for failed in f1_stored):
                output.append(line)

output做你想做的事

【讨论】:

以上是关于如何在python中拆分文件的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 python zipfile 库检查 zip 文件是不是在多个档案中拆分?

如何在多个文件中拆分 Python Tkinter 代码

如何在 Python 中使用管道分隔符拆分文本文件,然后使列数等于属性值的数量?

如何将 Python 模块拆分为多个文件?

如何在 Databricks 中使用 Python 将数据框数组拆分为列

Python:如何拆分WARC文件?