【发布时间】:2015-02-02 15:36:20
【问题描述】:
我有一个函数允许我输入两个文件文本文件,比较这些文本文件,最后创建第三个文件的差异。它适用于文件中的每一行,并且要使其正常工作,文件 1 和文件 2 中的整行文本必须相似才能注册。这是我的问题,我希望仅根据冒号后面的第一个单词将行与相似的行进行比较 - 冒号后面的文本不需要相同。
文件的结构是这样的;
文件 1 示例:
A:dog
B:cat
C:bird
D:cow
E:pig
文件 2 示例:
B:sheep
D:duck
我希望新创建的文件(文件 3)的输出具有以下内容:
A:dog
C:bird
E:pig
我希望该函数仅根据分号前的第一个字符串(字母)输出文件 1 中不在文件 2 中的条目。这目前仅在文件 2 中的整行文本与文件 1 相同时才有效:
def comparison(F1,F2,F3):
with open(F1, 'r') as f:
d=set(f.readlines())
with open(F2, 'r') as f:
e=set(f.readlines())
open(F3, 'a').close()
with open(F3, 'a') as f:
for line in list(d-e):
f.write(line)
comparison('file1.txt','file2.txt','file3.txt')
我主要尝试使用line.split(':')[0]来抓取冒号前的第一个字符串进行比较,但没有成功。
【问题讨论】:
-
好的...所以你想输出一个行列表,其中冒号之前的文本对于其中一个文件是唯一的?
-
是的:)。如果冒号之前的文本不在文件 2 中,我希望它从文件 1 输入到文件 3 中
标签: python file function compare output