比较Python中两个文件的非重复文件内容格式

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了比较Python中两个文件的非重复文件内容格式相关的知识,希望对你有一定的参考价值。

我想知道是否有一种方法来比较python中逗号分隔值(csv)文件的文件内容格式。我有一个脚本,它接受输入csv文件并提供生成的输出。我尝试在给定的文件集上运行脚本,但是收到了我给出的文件的错误消息。为了测试脚本是否是问题,我使用一组具有相同格式的不同文件来运行脚本。这让我相信其中一个文件格式不正确。我尝试直观地检查格式,但是有太多的列和行来检查格式问题和列数据类型。

一个例子:

File_1.csv内容包含:

Field_1,Field_2,Field_3, Field_4, ...
ABC, 2012, CH4, 31231.123, ...
ABC2, 20134, H20, 3234.3432, ...
..., ..., ..., ..., ...

File_2.csv内容包含:

Field_1, Field_2, Field_3, Field_4, ...
BBC, 324, OH, 323.232, ...
BBC2, 2112, HCL, 23.2324, ...
..., ..., ..., ..., ...

这个想法是两个使用file_1.csv的格式来确保file_2.csv具有相同的格式和数据类型。它基本上会检查文件二是否遵循与文件一相同的格式:

<Str>, <Str>, <Str>, <Str>, ...
<Str>, <int>, <Char>, <float>, ...
<Str>, <int>, <Char>, <float>, ...
<Str>, <int>, <Char>, <float>, ...

假设File 1具有正确的列名格式和行数据类型。是否编写了一个比较文件格式和数据类型的程序/脚本?或者,我是否必须从头开始这样做?

答案

你可以很快自己做到这一点。我假设你在尝试将其中一个字段输入int / char或其他东西时遇到错误。您可以使用try-except语句尝试并确定错误。这是一些伪代码:

for line in file:
    # separate the fields
    fields  = line.split(',')
    try:
        field1 = int(fields[0])
    except:
        # you had an error

显然,如果你有很多字段,这可能很乏味,但我假设你已经在你的代码中写了这样的东西。

以上是关于比较Python中两个文件的非重复文件内容格式的主要内容,如果未能解决你的问题,请参考以下文章

python 有没有一个模块可以比较两个文本文件内容差异的?而且可以只输出差异的部分?

Python使用difflib模块比较两个文件内容异同,同时输出html易浏览

用python比较两个文件中内容的不同之处, 并输出行号和内容.

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

在 Python 中,有没有比较简洁的方法来比较两个文本文件的内容是不是相同?

10行Python代码自动清理电脑内重复文件,释放双手!