我想知道是否有一种方法来比较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
显然,如果你有很多字段,这可能很乏味,但我假设你已经在你的代码中写了这样的东西。