python - 我有两个 csv 文件,需要使用 for 循环进行相互比较

标签 python python-3.x

我是一个新手,试图在 python 中执行此操作,有一个简单的方法吗?

我有两个 CSV 文件

这是第一个 CSV 文件

filename,file_serial_number
file1, 1F
file2, 2E
file3, 3C

这是第二个 CSV 文件

filename,file_serial_number
file1, 1A
file2, 2C
file3, 3E

这是我的代码:

import csv

csv_file1 = r'csv_file.csv'
csv_file2 = r'csv_file(1).csv'

with open(csv_file1, 'r') as file1_csv, open(csv_file2, 'r') as file2_csv:
fileone = csv.DictReader(file1_csv)
filetwo = csv.DictReader(file2_csv)
file1_serial_list = []
for row_f1 in fileone:
    f1_filename = row_f1['filename']
    f1_file_serial = row_f1['file_serial_number']
    file_serial_list.append(f1_file_serial)


file2_serial_list = []
for row_f2 in filetwo:
    f2_filename = row_f2['filename']
    f2_file_serial = row_f2['file_serial_number']
    file_serial_list.append(f2_file_serial)

for serial1, serial2 in zip(file1_serial_list, file2_serial_list):
    if serial1 > serial2:
        # This should output the filenames with greater serial on csv_file1.
        print(f1_filename)

# Output should be:
    file1
    file2

最佳答案

您可以直接zip DictReader

for row_f1, row_f2 in zip(fileone, filetwo):
    print(row_f1['filename'] 
           if row_f1['file_serial_number'] > row_f2['file_serial_number'] 
                else row_f2['filename'])

关于python - 我有两个 csv 文件,需要使用 for 循环进行相互比较,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/69825611/

相关文章:

python - @login_required Flask 应用程序中的问题

python - Jupyter:如何更改 SelectMultiple() 等小部件的颜色?

python看到代码并尝试帮助我 friend

python - 刮刀给出空白输出

Python:对于字符串列表:拉出字符串中的第一个 3-6 位数字和同一字符串中的第二个 3-6 位数字,并用空格分隔

python - mod_wsgi 产生输出缓冲区而不是返回

python - GIS:在 Python 中合并多重多边形

python-3.x - 在循环中使用 print 的 end 参数时出现奇怪的问题

python - python 3 的 weave 替代品

python-3.x - 如何调整从cv2.imshow()获得的窗口的大小?