如何制作一个检查csv文件是否有效的函数?(python)

如何制作一个检查csv文件是否有效的函数?(python),python,csv,Python,Csv,我有一个像这样的csv文件 名称:test1.csv read_start,read_end 22,90 15,88 10,100 test2.csv read_start,read_end 10,100 100,10 8,10 我的问题是 我如何制作一个代码来检查read_start中的所有值是否小于或等于read_end中的值并返回True 如果read\u start的任何值大于read\u end,则返回False 例如: 验证\u对齐('test1.csv') 如果我测试这段代码,

我有一个像这样的csv文件 名称:test1.csv

read_start,read_end
22,90
15,88
10,100
test2.csv

read_start,read_end
10,100
100,10
8,10
我的问题是 我如何制作一个代码来检查read_start中的所有值是否小于或等于read_end中的值并返回True 如果read\u start的任何值大于read\u end,则返回False

例如:

验证\u对齐('test1.csv')

如果我测试这段代码,它将返回True

test2.csv将为False

这就是我尝试过的

import csv

def validate_alignment(alignment_filename):
    file=open(alignment_filename)

    contentss=csv.reader(file)

    for x in contentss:

        if len(x)==0:
            return False
        elif len(x)!=0:
            if x[0]<x[1]:
                return True
            else:
                return False
导入csv
def验证\对齐(对齐\文件名):
文件=打开(对齐\文件名)
contentss=csv.reader(文件)
对于内容中的x:
如果len(x)==0:
返回错误
伊里夫·伦(x)=0:

如果x[0]仅在检查所有行后返回true

def validate_alignment(alignment_filename):
    file=open(alignment_filename)
    contentss=csv.reader(file)
    for x in contentss:
        if len(x)==0:
            return False
        elif int(x[0])>int(x[1]):
            return False
    return True
让我们做个测试:

>>> validate_alignment("test1.csv")
True
>>> validate_alignment("test2.csv")
False
我在test1.csv中看到了
read\u start,read\u end
,所以我添加了
f.readline()
来传递头行,如果您的实际数据没有这样的行,就从代码中删除它。

data=csv.reader(打开(对齐文件名,'r'))
data = csv.reader(open(alignment_filename,'r'))
data.next()

print all([row[0]<row[1] for row in data])
data.next()
打印全部([row[0]如果它们相等怎么办?@DanielPPCabral my bad。我编辑了问题回溯(最近一次调用):文件“”,第1行,在文件“/home/hhyungchae/foc/mywork/dying2.py”中,第8行,在validate_alignment return all([row[0]中是否有空行?此错误基本上意味着没有任何第[0]行或第[1]行)如果你的文件中没有标准数据,那么你也需要处理它。非常感谢!我刚才做错了一件事。现在工作正常了!谢谢。但是你知道如何使函数只接受正整数吗?@VIKASHJAISWALi对test1和test2都为false D:@Hwanghungchae你知道吗有空线吗?对不起。我刚试了一次,但不知道为什么会这样。谢谢回答:D
data = csv.reader(open(alignment_filename,'r'))
data.next()

print all([row[0]<row[1] for row in data])