比较csv文件和文本文件

2024-10-03 02:47:07 发布

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

我是编程新手。 我正在尝试读取如下所示的CSV文件:

GVHN_Brazil_GGXS,0
TTYU_Germany_HLZ,5

等等。。 (该数字为实际计数)

并将其与如下所示的文本文件进行比较:

GVHN_Brazil_GGXS;50;100
TTYU_Germany_HLZ;30;70
etc..

(此处的数字为两个限值,具有不同的作用)

我试图找到“最佳实践”,从CSV文件中读取每个计数,并与文本文件中的每个唯一限制进行比较,除了能够读取这两个文件之外,我还没有做更多的工作

编辑:新问题,在Pistolpet的帮助下,我得到了我想要的,唯一的例外是文件中的数字似乎没有变成整数,所以它扰乱了比较过程

例如,我将所有限制设置为50和100来测试它,当计数为10时,它起作用,但如果是7或8,它会触发50限制,当计数为15时,它会触发100限制

好像7变成70,15变成150或者类似的东西


Tags: 文件csv编程etc数字计数文本文件brazil
1条回答
网友
1楼 · 发布于 2024-10-03 02:47:07

我建议在文本文件中使用csv.DictReader和“;”分隔符。然后,您可以在每个文件的行上循环,并比较您关心的字段

import csv


with open("csv_file.csv") as csv_file:
    with open("text_file.txt") as text_file:
        csv_reader = csv.DictReader(csv_file, fieldnames=("name", "actual_count"))
        text_reader = csv.DictReader(text_file, fieldnames=("name", "limit_1", "limit_2"), delimiter=";")

        for csv_row, text_row in zip(csv_reader, text_reader):
            # example comparison, replace this with whatever comparison logic you care about
            if int(csv_row["actual_count"]) < int(text_row["limit_1"]):
                do_something()

相关问题 更多 >