繁体   English   中英

Python,比较2个txt文件,找到第2个txt文件中唯一的行和output到一个新的txt文件

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM