比较python中的两个CSV文件并输出

     2023-02-23     89

关键词:

【中文标题】比较python中的两个CSV文件并输出【英文标题】:Comparing two CSV files in python and output 【发布时间】:2022-01-24 04:35:38 【问题描述】:

我有两个 CSV 文件。我需要将 file1 与 file2 进行比较,并输出 file1 中不在 file2 中的任何行。问题是当 file1 中有两行具有精确值时。输出应该显示不在 file2 中的值,而是将两个值作为重复项删除。有没有办法做到这一点?

我现在使用的代码是


with open('file1.csv', 'r') as t1, open('file2.csv', 'r') as t2:
            fileone = t1.readlines()
            filetwo = t2.readlines()

with open('addressList.csv', 'w') as outFile:
         for line in fileone:
             if line not in filetwo:
                      outFile.write(line)
            sys.exit()

文件1:

address, value

2ce8e,200

2ce8e,200

fb0d7,350

fb0d7,225

fb0d7,250

fb0d7,361

fb0d7,175

fb0d7,450

文件2:

address, value

2ce8e,200

fb0d7,350

fb0d7,250

fb0d7,225

fb0d7,175

fb0d7,361

fb0d7,450

输出应该是

address, value

2ce8e,200

【问题讨论】:

您可以使用命令行diff 工具完成此操作,而无需任何编程。 我需要将输出保存为 csv 格式,因为另一个脚本将使用数据 diff 打印出不同的行。我只是指出,使用或调整现有工具通常比编写新工具更好。 【参考方案1】:

尝试使用 Python 的 set 类型。 set 中的每个元素都必须是不同的,因此它会自动删除其元素的重复数据。 set 类型上提供的操作使比较元素变得非常容易。查阅 Python 的文档和数学集合论以获取更多信息。

例子:

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

# get lines from fileone that are not in filetwo (set difference)
diff12 = fileone - filetwo

# get lines from filetwo that are not in fileone (set difference)
diff21 = filetwo - fileone

# get lines in common between fileone and filetwo (set intersection)
common = fileone & filetwo

您似乎需要保留行的顺序,set 不会自行完成。但是,您仍然可以使用集合来加快此过程。

【讨论】:

python比较两个csv文件并打印出差异(代码片段)

查看详情

python:利用for循环比较两个列表元素的异同进而找出共有元素各自不同元素并全部导出到csv文件实现代码

Python:利用for循环比较两个列表元素的异同进而找出共有元素、各自不同元素并全部导出到csv文件实现代码目录利用for循环比较两个列表元素的异同进而找出共有元素、各自不同元素并全部导出到csv文件实现代码 查看详情

将两个 csv 文件与 python pandas 进行比较

】将两个csv文件与pythonpandas进行比较【英文标题】:Comparetwocsvfileswithpythonpandas【发布时间】:2017-07-1401:52:06【问题描述】:我有两个csv文件都包含两列。第一个有产品ID,第二个有序列号。我需要查找第一个csv中的所有序列号,... 查看详情

如何比较两个目录并在python中输出更改的文件(代码片段)

我在Linux中有两个目录,其中有两个文件。我需要比较这两个目录并打印出更改的文件。folder1:file1.txtfile2.txtfolder2:file1.txtfile2.txt我需要将folder1与folder2进行比较,并打印出这两个目录中不同的文件名。我想首先使用ls命令获取文... 查看详情

比较python中两个文件的非重复文件内容格式(代码片段)

我想知道是否有一种方法来比较python中逗号分隔值(csv)文件的文件内容格式。我有一个脚本,它接受输入csv文件并提供生成的输出。我尝试在给定的文件集上运行脚本,但是收到了我给出的文件的错误消息。为了测试脚本是否... 查看详情

使用python查找两个csv文件列之间的差异

...svcol1,col2,col31,2,34,5,67,8,9file2.csvcol1,col2,col30,2,34,0,67,8,9我想比较这两个文件的列输出结果到另一个文件。 查看详情

按列和值比较两个 csv 文件并显示不同值的行号 [关闭]

】按列和值比较两个csv文件并显示不同值的行号[关闭]【英文标题】:Comparingtwocsvfilesbycolumnandvalueanddisplayinglinenumbersofdifferingvalues[closed]【发布时间】:2016-07-0611:47:40【问题描述】:我正在为两个包含列和对应值的csv文件做一个比... 查看详情

如何通过将csv文件与python中的其他csv文件进行比较来删除和替换csv文件中的列?

】如何通过将csv文件与python中的其他csv文件进行比较来删除和替换csv文件中的列?【英文标题】:Howtodeleteandreplacecolumnsinacsvfilebycomparingittoothercsvfilesinpython?【发布时间】:2019-06-2014:58:28【问题描述】:我正在编写一个python代码来... 查看详情

使用python将现有csv文件中的列插入另一个csv文件

】使用python将现有csv文件中的列插入另一个csv文件【英文标题】:Insertingacolumfromanexistingcsvfileintoanothercsvfileusingpython【发布时间】:2021-05-0816:52:40【问题描述】:我有两个列数相同的CSV文件。我想将文件1作为第一列插入到file2中... 查看详情

在 python 中从模板文件和 csv 数据生成输出文件

】在python中从模板文件和csv数据生成输出文件【英文标题】:Generateoutputfilesfromtemplatefileandcsvdatainpython【发布时间】:2014-01-1114:23:09【问题描述】:我需要从python中的csv文件中生成填充数据的xml文件我有两个输入文件:一个名为d... 查看详情

python解析蜡烛棒文件并输出到csv(代码片段)

查看详情

for循环中的2个csv文件,输出一个csv文件python

】for循环中的2个csv文件,输出一个csv文件python【英文标题】:2csvfileinaforloop,outputonecsvfilepython【发布时间】:2021-11-0212:41:53【问题描述】:我有2个csv文件,第一个(station.csv)有两列经纬度,第二个(catalog.csv有5列,还有两列有... 查看详情

Python 修改 csv 文件,复制和格式化列,并保存输出

】Python修改csv文件,复制和格式化列,并保存输出【英文标题】:Pythontomodifyacsvfile,duplicateandformatacolumn,andsaveoutput【发布时间】:2020-11-1806:38:44【问题描述】:我正在尝试使用pandas库找出一种方法来获取3列csv文件并将其转换为5... 查看详情

在 python 中解析文本文件并输出到 CSV

】在python中解析文本文件并输出到CSV【英文标题】:ParsingatextfileinpythonandoutputtingtoaCSV【发布时间】:2015-11-1514:27:15【问题描述】:前言-我对Python还是很陌生,在其他语言方面有更多经验。我有一个文本文件,其中包含通用(但... 查看详情

将for循环的输出写入python中的csv

】将for循环的输出写入python中的csv【英文标题】:Writeoutputfromforlooptoacsvinpython【发布时间】:2019-07-2020:53:34【问题描述】:我正在打开一个名为Remarks_Drug.csv的csv,其中包含产品名称并映射文件名在连续的列中。我在产品栏目做... 查看详情

遍历 CSV 的每一行并使用 Python-Pandas 写入文件夹中的单个 JSON 文件

】遍历CSV的每一行并使用Python-Pandas写入文件夹中的单个JSON文件【英文标题】:IteratethrougheachrowofCSVandwriteintoindividualJSONfilesinafolderusingPython-Pandas【发布时间】:2019-12-2405:18:05【问题描述】:我正在尝试使用输入为CSV为每一行生成... 查看详情

将日期列添加到python中的附加输出csv文件

】将日期列添加到python中的附加输出csv文件【英文标题】:addingdatecolumntotheappendingoutputcsvfileinpython【发布时间】:2014-04-0803:46:48【问题描述】:我使用下面的代码来合并所有csv文件:每个文件下面有10,000行:billing_report_2014-02-01.c... 查看详情

AWK:比较 2 个 csv 文件中的 2 列,输出到第三个。如何获得与另一个文件不匹配的输出?

】AWK:比较2个csv文件中的2列,输出到第三个。如何获得与另一个文件不匹配的输出?【英文标题】:AWK:comparing2columnsfrom2csvfiles,outputtingtoathird.HowdoIalsogettheoutputthatdoesntmatchtoanotherfile?【发布时间】:2022-01-0713:56:38【问题描述】:... 查看详情