我有代码比较每个文件中某些行的两个不同文件并打印差异。假设两个文件都有一条共同的行,但在其中一个文件中,这一行在最后有一个额外的空格。
File1中:
1)我要比较的行
文件2:
1)我要比较的行(这行末尾有一个额外的空格)
当前代码认为这些行是不同的,因为文件2中行末尾的空格,我如何修改代码,使其忽略行尾的空格,并不认为这些行是不同的。
with open('file1.txt') as f:
f1 = f.read().strip().splitlines()
f1a = set(f1)
with open('file2.txt') as f:
f2 = f.read().strip().splitlines()
f2a = set(f2)
print "only in file1 and not in file2"
for diff in f1a-f2a:
print f1.index(diff), diff
print "only in file2 and not in file1"
for diff in f2a-f1a:
print f2.index(diff), diff
答案 0 :(得分:0)
您当前剥离了读取字符串,因此您在第一行之前和最后一行之后删除了空格,之后将字符串拆分为换行符。你想要的是剥离每一行。 使用像
这样的东西f1 = [line.strip() for line in f.readlines()]
或
f1 = [line.strip() for line in f.splitlines()]
和f2相同。我还会考虑使用rstrip
代替strip
来仅删除尾随的空格,因为它们标记缩进和段落通常很重要。