使用python逐行比较两个csv文件中的内容

2024-09-28 03:14:08 发布

您现在位置:Python中文网/ 问答频道 /正文

嗨,在使用python比较两个csv文件时,我需要执行以下步骤:

0)打开文件1和文件2

1)从文件1中读取一行

2)从文件2中读取一行

3)比较每一行的内容,统计相同和不同行的数量

4)如果内容不同,则将文件1和文件2中的内容写入输出文件

5)在到达文件结尾之前,返回步骤1)

6)显示相同内容和不同内容的记录计数,关闭文件

请建议一个易于理解的代码。谢谢

目前我的代码如下:

input_file1 = "Claim_ExportStudyPeriod_NoQuotes_Ap.csv"
input_file2 = "Claim_ExportStudyPeriod_NoQuotes_Jp.csv"
output_path = "Comparison.csv"

t1 = open(input_file1, 'r')

t2 = open(input_file2, 'r')

fileone = t1.readlines()
filetwo = t2.readlines()

with open(input_file2, 'r') as t2, open(output_path, 'w') as outFile:
    for line in t2:
        if line not in fileone:         
            outFile.write(line)

Tags: 文件csv代码内容inputoutputline步骤
1条回答
网友
1楼 · 发布于 2024-09-28 03:14:08

也许是这样的:

with open('first.csv', 'r') as f, open('second.csv', 'r') as s, open('out.csv', 'w') as o:
    diffs = 0
    for i, (first, second) in enumerate(zip(f, s), start=1):
        if first != second:
            print((f'row #{i}\n'
                   f'in first file: {first.strip()}\n'
                   f'in second file: {second.strip()}'), file=o)
            diffs += 1
    print(f'Different values on {diffs} row(s), same values on {i-diffs} row(s)')

相关问题 更多 >

    热门问题