Python 2.7 Python中两个CSV文件的比较
我想比较两个csv文件,如下所示。 这里我想找出不匹配的信号 我需要一些python方面的帮助。请帮帮我Python 2.7 Python中两个CSV文件的比较,python-2.7,csv,Python 2.7,Csv,我想比较两个csv文件,如下所示。 这里我想找出不匹配的信号 我需要一些python方面的帮助。请帮帮我 File 1 2 USER Name
File 1
2
USER Name
7/31/2015 0:00
<XXXXXXX>
1 Signal_1 10
2 Signal_2 1 2 3 4 5
3 Signal_3 X 5 10 15 20 25 Y 6 11 16 21 26
1 Signal_4 20
1 Signal_5 30
2 Signal_6 6 7 8 9 10 11 12 13
2 Signal_7 55 1.05 1.6 14.1
3 Signal_8 X 30 40 50 60 40 Y 14 15 26 14 26
2 Signal_9 1 1 2 3 2
1 Signal_10 40
File 2
2
USER Name
7/31/2015 0:00
<XXXXXXX>
3 Signal_3 X 20 10 15 17 25 Y 6 11 16 21 26
1 Signal_5 5
2 Signal_7 55 1.05 1.6 14.1
1 Signal_1 10
3 Signal_8 X 30 40 50 60 40 Y 14 15 26 14 26
1 Signal_10 14
2 Signal_9 1 1 2 3 2
2 Signal_6 6 7 8 59 10 15 12 13
1 Signal_4 20
2 Signal_2 1 2 3 4 5
Result:
File
3 Signal_3 X 5 10 15 20 25 Y 6 11 16 21 26
1 Signal_5 30
1 Signal_10 40
2 Signal_6 6 7 8 9 10 11 12 13
File 2
3 Signal_3 X 20 10 15 17 25 Y 6 11 16 21 26
1 Signal_5 5
1 Signal_10 14
2 Signal_9 1 1 2 3 2
文件1
2.
用户名
7/31/2015 0:00
1号信号机1 10
2信号_2 1 2 3 4 5
3信号_3 X 5 10 15 20 25 Y 6 11 16 21 26
1信号装置4 20
1号信号灯5 30
2信号_6 6 7 8 9 10 11 12 13
2信号_7 55 1.05 1.6 14.1
3信号_8 X 30 40 50 60 40 Y 14 15 26
2信号_9 1 2 3 2
1号信号机10 40
文件2
2.
用户名
7/31/2015 0:00
3信号_3 X 20 10 15 17 25 Y 6 11 16 21 26
1信号装置5
2信号_7 55 1.05 1.6 14.1
1号信号机1 10
3信号_8 X 30 40 50 60 40 Y 14 15 26
1信号装置10 14
2信号_9 1 2 3 2
2信号_6 6 7 8 59 10 15 12 13
1信号装置4 20
2信号_2 1 2 3 4 5
结果:
文件
3信号_3 X 5 10 15 20 25 Y 6 11 16 21 26
1号信号灯5 30
1号信号机10 40
2信号_6 6 7 8 9 10 11 12 13
文件2
3信号_3 X 20 10 15 17 25 Y 6 11 16 21 26
1信号装置5
1信号装置10 14
2信号_9 1 2 3 2
如果要检查比较是否相当准确,可以非常轻松地使用集合:
def sigset(fname):
with open(fname, 'rb') as f:
data = set(' '.join(line.split()) for line in f
if 'Signal' in line)
return data
s1 = sigset('sig1.txt')
s2 = sigset('sig2.txt')
print('File 1')
for line in sorted(s1 - s2):
print(line)
print('')
print('File 2')
for line in sorted(s2 - s1):
print(line)
到目前为止你尝试了什么?作为一个普遍的建议:你有csv。使用pandasWelcome进行堆栈溢出!在堆栈溢出问题上,最好添加一个解释,说明解决方案应该工作的原因。欲了解更多信息,请阅读。
with open('Sample1.csv', 'r') as t1, open('Sample2.csv', 'r') as t2:
fileone = t1.readlines()
filetwo = t2.readlines()
print fileone
print filetwo
with open('update.csv', 'w') as outFile:
for line in filetwo:
if line not in fileone:
outFile.write(line)
for line in fileone:
if line not in filetwo:
outFile.write(line)