求编写Python脚本仅输出两个文本文件的差异内容
解决方案
你需要的是提取第二个文件列表中独有的元素(并保留原顺序),而非文本行的逐行对比,直接用difflib不太适配,换个思路处理:
- 把文件中的列表字符串解析为Python可操作的列表对象
- 筛选出文件2有但文件1没有的元素
- 按原格式输出结果
示例代码
import ast def load_list_from_file(file_path): with open(file_path, 'r', encoding='utf-8') as f: # 读取文件内容并解析为列表 return ast.literal_eval(f.read().strip()) # 加载两个文件的列表 list1 = load_list_from_file('file1.txt') list2 = load_list_from_file('file2.txt') # 找出list2独有的元素,保留原顺序 unique_items = [item for item in list2 if item not in list1] # 按输入的格式输出结果 print(str(unique_items))
代码说明
ast.literal_eval:安全地将文件中的字符串形式列表转换为Python列表,比eval更安全,避免代码注入风险- 列表推导式:遍历
list2,只保留不在list1中的元素,自然保持原顺序 - 最后用
str()把结果转回字符串格式,和输入的列表格式一致
测试验证
假设file1.txt内容是:
['Tom','Joe','Kim']
file2.txt内容是:
['Tom','Leo','Cho','Joe','Kim']
运行脚本后会直接输出:
['Leo', 'Cho']
内容的提问来源于stack exchange,提问作者Noah Daniel
相关产品推荐
相关产品推荐

