如何区分输出结果分别是那个文本的内容?
1、在下图的代码中运行后的输出结果,我如何判定那部分分别是那个文本的?
2、如何在这个脚本基础上,增加一项输出结果为:两个文本中多次重复的内容。

如何区分输出结果分别是那个文本的内容?
1、在下图的代码中运行后的输出结果,我如何判定那部分分别是那个文本的?
2、如何在这个脚本基础上,增加一项输出结果为:两个文本中多次重复的内容。

关注引自免费微信小程序:皆我百晓生
在您提供的代码中,它是一个简单的Python脚本,用于比较两个文本文件的不同之处。为了区分输出结果是哪个文本的内容,我们可以通过查看输出中的前缀符号来判断。
当difflib.ndiff()函数返回的差异字符串以- 开始时,这意味着这是第一个文件(在这里是1.txt)独有的行。而当差异字符串以+ 开始时,这意味着这是第二个文件(在这里是2.txt)独有的行。这些符号表示了变化,-表示从第一个文件中移除的行,+表示添加到第二个文件中的新行。
下面是代码解释和修改后的代码,以显示每个文件的差异:
import difflib
def compare_files(file1, file2):
with open(file1, 'r', encoding='utf-8') as f1, open(file2, 'r', encoding='utf-8') as f2:
lines1 = f1.readlines()
lines2 = f2.readlines()
# 找出不同的行
diff = difflib.ndiff(lines1, lines2)
# 分离不同文件的差异
diff_lines_file1 = []
diff_lines_file2 = []
for line in diff:
if line.startswith('- '):
diff_lines_file1.append(line.strip()[2:])
elif line.startswith('+ '):
diff_lines_file2.append(line.strip()[2:])
return diff_lines_file1, diff_lines_file2
# 比较两个文本文件
file1 = '1.txt'
file2 = '2.txt'
diff_lines_file1, diff_lines_file2 = compare_files(file1, file2)
print(f"文件 {file1} 的差异:")
for line in diff_lines_file1:
print(line)
print("\n文件 {file2} 的差异:")
for line in diff_lines_file2:
print(line)
# 输出两个文件中重复的内容
common_lines = list(set(diff_lines_file1) & set(diff_lines_file2))
if common_lines:
print("\n两个文件中重复的内容:")
for line in common_lines:
print(line)
else:
print("两个文件没有重复内容")
这个修改过的代码会分别列出两个文件的独特差异,并且还会找到并输出两个文件中重复的内容。将此代码保存为一个新的.py文件,然后运行它,就能得到你需要的信息。