我有两个日志文件,其中包含以下行。我想比较这两个文件中的数据是否相同或不同。
在这个从736.199070736:
到0x000a00f5)
的file1.txt
数据中,使它成为一行。
会像这样来的
736.199070736: LOG_MOD_L0_RECEIVE_TXBRP_CONTROL(0, 0x0075007f, 0x005500dd, 0x007f00d7, 0x0057005f, 0x00ff007d, 0x00f700dd, 0x00f50057, 0x000a00f5).
在file2.txt
中,第一行是:
736.199047132: LOG_TXBP_MOD_IF_RSP_DPCCH(BlockNum: 0, 0x0075007f, 0x005500dd, 0x007f00d7, 0x0057005f, 0x00ff007d, 0x00f700dd, 0x00f50057, 0x000a00f5)
所以从这两个文件的第一行:
我想比较file1.txt
第一行的数据
(0,0x0075007f,0x005500dd,0x007f00d7,0x0057005f,0x00ff007d,0x00f700dd,0x00f50057,0x000a00f5)
以及来自file2.txt
第一行的数据
(块编号:0、0x0075007f、0x005500dd、0x007f00d7、0x0057005f、0x00ff007d、0x00f700dd、0x00f50057、0x000a00f5)
我需要删除BlockNum:
文本,然后进行比较。
文件1.txt包含:
736.199070736: LOG_MOD_L0_RECEIVE_TXBRP_CONTROL(0,
0x0075007f,
0x005500dd,
0x007f00d7,
0x0057005f,
0x00ff007d,
0x00f700dd,
0x00f50057,
0x000a00f5)
736.209069960: LOG_MOD_L0_RECEIVE_TXBRP_CONTROL(0,
0x0075007b,
0x005500dd,
0x007f00d7,
0x0057005f,
0x00ff007d,
0x00f700dd,
0x00f50057,
0x000a00f1)
“file2.txt”包含:
736.199047132: LOG_TXBP_MOD_IF_RSP_DPCCH(BlockNum: 0, 0x0075007f, 0x005500dd, 0x007f00d7, 0x0057005f, 0x00ff007d, 0x00f700dd, 0x00f50057, 0x000a00f5)
736.209044558: LOG_TXBP_MOD_IF_RSP_DPCCH(BlockNum: 0, 0x0075007f, 0x005500dd, 0x007f00d7, 0x0057005f, 0x00ff007d, 0x00f700dd, 0x00f50057, 0x000a00f5)
我的代码是:
fin1=open("file1.txt","r")
fin2=open("file2.txt","r")
for line1 in fin1:
for line2 in fin2:
if line==line2:
print "same data"
else:
print "data are different"
这和我想要的不太一样。
我从您的代码中了解到,将file1的第一行与file2中的所有行进行比较。
实际上,您要做的是读取file1中的一行,如果不同,请将其与file2进行比较reutun“different”并完成。否则,完成所有行的比较并返回相等。
我不喜欢how to compare lines in two files are same or different in python中的答案,因为它们会将所有文件加载到内存中。
我想做的是
你的问题是在第二个循环中,你会说:
当需要时:
因为它不知道
line
是什么,所以会出现错误。这是经过测试的正确代码。快乐编码!
不要只是逐行读取文件,而是过滤每一行:提取
(
)
中的内容,如果存在,则删除BlockNum:
。像这样的:相关问题 更多 >
编程相关推荐