如何检查 CSV 文件的内容是否遵循 Python 中的特定格式?
How to check if content of CSV file follows a specific format in Python?
我正在创建一个 python 程序,它将 CSV 文件作为输入(文件位置作为命令行),在进行任何预处理之前,它会断言文件内容是否为特定格式如果不是,则向用户抛出异常,说明选择正确的文件。
内容应该是这样的:
Sr.no . Codes . v1 . v2 . v3 . v4 . ... v300
1 . code1 . val1 . val2 . val3 . NA . ... NA
2 . code2 . val4 . NA . NA . NA . ... NA
3 . code3 . val5 . val6 . NA . NA . ... NA
4 . code4 . val7 . val8 . val9 . NA . ... NA
.
.
基本上它应该是一个CSV文件,前两列是SrNo。和代码以及接下来的 300 列作为一些值,然后是 'NA' 最多 300.
如果用户上传这样的东西
Sr.no . Codes . v1 . v2 . v3 . . . . . . v300
1 . code1 . NA . val1 . NA . . . . . . NA
2 . code2 . val2 . val3 . NA . . . . . . NA
它应该根据 Srno=1 引发异常,尽管 v1 列中有 NA,但 v2 列中有一个值。
想知道如何使用 Python 断言文件内容是否采用这种格式(示例代码片段会有所帮助)。此外,我还可以从中学习如何断言文件内容内容,不仅针对这种格式,还针对通用格式。
目前,我已经到达这里,需要完成assert_format功能
import sys
import csv
def assert_format(file_name):
csv_file = open(file_name)
reader = csv.reader(csv_file)
#code to check format
return True
file_name = sys.argv[1]
if assert_format(file_name):
print("format is correct")
else:
print("choose correct file")
提前致谢!
看看这是否符合您的要求:
import sys
import csv
def assert_format(file_name):
with open(file_name, 'rb') as csvfile:
reader = csv.reader(csvfile, delimiter='.')
for row in reader:
flag=False
for cell in row:
if(cell == 'NA' and not flag):
flag=True
elif(cell == 'NA' and flag):
return False
return True
file_name = sys.argv[1]
if assert_format(file_name):
print("format is correct")
else:
print("choose correct file")
我正在创建一个 python 程序,它将 CSV 文件作为输入(文件位置作为命令行),在进行任何预处理之前,它会断言文件内容是否为特定格式如果不是,则向用户抛出异常,说明选择正确的文件。
内容应该是这样的:
Sr.no . Codes . v1 . v2 . v3 . v4 . ... v300
1 . code1 . val1 . val2 . val3 . NA . ... NA
2 . code2 . val4 . NA . NA . NA . ... NA
3 . code3 . val5 . val6 . NA . NA . ... NA
4 . code4 . val7 . val8 . val9 . NA . ... NA
.
.
基本上它应该是一个CSV文件,前两列是SrNo。和代码以及接下来的 300 列作为一些值,然后是 'NA' 最多 300.
如果用户上传这样的东西
Sr.no . Codes . v1 . v2 . v3 . . . . . . v300
1 . code1 . NA . val1 . NA . . . . . . NA
2 . code2 . val2 . val3 . NA . . . . . . NA
它应该根据 Srno=1 引发异常,尽管 v1 列中有 NA,但 v2 列中有一个值。
想知道如何使用 Python 断言文件内容是否采用这种格式(示例代码片段会有所帮助)。此外,我还可以从中学习如何断言文件内容内容,不仅针对这种格式,还针对通用格式。
目前,我已经到达这里,需要完成assert_format功能
import sys
import csv
def assert_format(file_name):
csv_file = open(file_name)
reader = csv.reader(csv_file)
#code to check format
return True
file_name = sys.argv[1]
if assert_format(file_name):
print("format is correct")
else:
print("choose correct file")
提前致谢!
看看这是否符合您的要求:
import sys
import csv
def assert_format(file_name):
with open(file_name, 'rb') as csvfile:
reader = csv.reader(csvfile, delimiter='.')
for row in reader:
flag=False
for cell in row:
if(cell == 'NA' and not flag):
flag=True
elif(cell == 'NA' and flag):
return False
return True
file_name = sys.argv[1]
if assert_format(file_name):
print("format is correct")
else:
print("choose correct file")