比较 2 个不同文件中的字符串 python
Compare string in 2 differents files python
我需要你的帮助,因为经过长时间的研究,我没有找到适合我的问题的答案。
我有 2 个包含一些信息的文件。这些信息有些相似,有些则不同。
第一个文件已排序,第二个文件未排序。
我尝试使用 difflib,但显然它在我的情况下不起作用。
例子
文件 1:
customerID: aa
companyName: AA
contacts: AAAA AAAA <aa@aa.fr>
文件 2:
customerID: zz
username: z.z
contacts: ZZZ ZZZ <zz@zz.com>
我需要查找customerID是否相同
这是我的代码:
import sys
import string
import difflib
def changes(file1, file2):
# opening the 2 files which we need to compare
master = open(file1, 'r')
slave = open(file2, 'r')
# searching diff
diff = difflib.unified_diff(master.readlines(),slave.readlines())
t = ''.join(diff)
print (t)
def main(argv=2):
print (sys.argv[1])
print (sys.argv[2])
if argv == 2:
changes(sys.argv[1], sys.argv[2])
else:
print ("This program need 2 files")
exit (0)
return 0
if __name__ == '__main__':
status = main()
sys.exit(status)
编辑:文件是我自己格式化的txt。
with open('first.txt', 'r') as first_file:
for line in first_file:
data = line.split(":")
if data[0].trim() == "customerID":
customer_id = data[1].trim()
with open('second.txt', 'r') as second_file:
for second_file_line in second_file:
data2 = line.split(":")
if data2[0].trim() == "customerID":
if customer_id == data2[1].trim():
<do your work>
如果您的文件太大,则在第二个文件中搜索
with open('second.txt', 'r') as second_file:
for line in second_file:
if customer_id in line:
<do your work>
或者如果文件足够小则
if customer_id in open('second.txt').read():
<do your work>
我需要你的帮助,因为经过长时间的研究,我没有找到适合我的问题的答案。
我有 2 个包含一些信息的文件。这些信息有些相似,有些则不同。 第一个文件已排序,第二个文件未排序。
我尝试使用 difflib,但显然它在我的情况下不起作用。
例子
文件 1:
customerID: aa
companyName: AA
contacts: AAAA AAAA <aa@aa.fr>
文件 2:
customerID: zz
username: z.z
contacts: ZZZ ZZZ <zz@zz.com>
我需要查找customerID是否相同
这是我的代码:
import sys
import string
import difflib
def changes(file1, file2):
# opening the 2 files which we need to compare
master = open(file1, 'r')
slave = open(file2, 'r')
# searching diff
diff = difflib.unified_diff(master.readlines(),slave.readlines())
t = ''.join(diff)
print (t)
def main(argv=2):
print (sys.argv[1])
print (sys.argv[2])
if argv == 2:
changes(sys.argv[1], sys.argv[2])
else:
print ("This program need 2 files")
exit (0)
return 0
if __name__ == '__main__':
status = main()
sys.exit(status)
编辑:文件是我自己格式化的txt。
with open('first.txt', 'r') as first_file:
for line in first_file:
data = line.split(":")
if data[0].trim() == "customerID":
customer_id = data[1].trim()
with open('second.txt', 'r') as second_file:
for second_file_line in second_file:
data2 = line.split(":")
if data2[0].trim() == "customerID":
if customer_id == data2[1].trim():
<do your work>
如果您的文件太大,则在第二个文件中搜索
with open('second.txt', 'r') as second_file:
for line in second_file:
if customer_id in line:
<do your work>
或者如果文件足够小则
if customer_id in open('second.txt').read():
<do your work>