![](/img/trans.png)
[英]how to compare difference in 2 txt files and output to a new txt file and print to shell using python
[英]Python, compare 2 txt files, find unique lines in the 2nd txt file and output to a new txt file
尝试了一堆代码,这是它让我最后一行的代码,但不是全部。 正如标题所说,我正在尝试从第二个 txt 文件和 output 到一个新的 txt 文件中找到唯一的行。
list1 = open('C:\\1.txt','r',encoding='utf-8')
list2 = open('C:\\2.txt','r',encoding='utf-8')
list_difference = []
for item in list2:
if item not in list1:
list_difference.append(item)
with open('some_output_file.txt','w',encoding='utf-8') as file_out:
for line in item:
file_out.write(line)```
要获得更快的解决方案,请将列表转换为集合:
list1 = open("file1.txt", "r", encoding="utf-8").readlines()
list2 = open("file2.txt", "r", encoding="utf-8").readlines()
set1 = set(list1)
set2 = set(list2)
print(f"len set1 {len(set1)}")
print(f"len set2 {len(set2)}")
# free the memory used by the lists
del list1
del list2
set_diff = set()
for item in set2:
if item not in set1:
set_diff.add(item)
print(f"len set_diff {len(set_diff)}")
print(set_diff)
item in set
恒定的 O(1) 时间运行,而列表的时间为 O(n)。
干杯!
list1 = open('C:\\1.txt','r',encoding='utf-8').readlines()
list2 = open('C:\\2.txt','r',encoding='utf-8').readlines()
# .readlines() returns a list of each line in the file.
list_difference = []
for item in list2:
if item not in list1:
list_difference.append(item)
with open('some_output_file.txt','w',encoding='utf-8') as file_out:
for line in list_difference:
file_out.write(line)
这会将文本文件的每一行输出到相应的列表中。 然后将这些独特的行写入'some_output_file.txt'
。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.