也無风雨也无晴~ 2024-04-18 11:04 采纳率: 0%
浏览 4

如何区分输出结果分别是那个文本的内容?

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

img

  • 写回答

6条回答 默认 最新

  • 专家-赤兔[在线] 优质创作者: 编程框架技术领域 2024-04-18 11:04
    关注

    引自免费微信小程序:皆我百晓生

    在您提供的代码中,它是一个简单的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文件,然后运行它,就能得到你需要的信息。

    评论 编辑记录

报告相同问题?

问题事件

  • 创建了问题 4月18日