如何逐行读取文件,然后在Python中打印包含值范围的字符串的行?

如何逐行读取文件,然后在Python中打印包含值范围的字符串的行?,python,python-2.7,csv,Python,Python 2.7,Csv,我是Python2.7的新手,我仍在努力掌握它的窍门 我有一个文本文件,其中有一行包含如下字符串的行: "AA,,BB,2014-02-06,0,0|CC,,DD,2014-02-27,0,0|EE,,FF,2014-02-04,1,1"#"GG"#"USD"#"true"#Total : USD#1638.93# (在“USD”前面有一堆文本,每行都有不同。) 我试着这样做: with open('out_put_usjfk50.csv', 'rb') as f: reader =

我是Python2.7的新手,我仍在努力掌握它的窍门

我有一个文本文件,其中有一行包含如下字符串的行:

"AA,,BB,2014-02-06,0,0|CC,,DD,2014-02-27,0,0|EE,,FF,2014-02-04,1,1"#"GG"#"USD"#"true"#Total : USD#1638.93#
(在“USD”前面有一堆文本,每行都有不同。)

我试着这样做:

with open('out_put_usjfk50.csv', 'rb') as f:
    reader = csv.reader(f, delimiter='#')
    for row in reader:
        amount = float(row[5])
        if amount <= 800:
            print row
        elif amount is None:
            pass
将open('out\u put\u usjfk50.csv','rb')作为f:
reader=csv.reader(f,分隔符='#')
对于读取器中的行:
金额=浮动(第[5]行)

如果金额您有一个CSV文件;使用:

新的每个
对象是一个字符串列表;每个字符串表示文件中的一列

假设
'1638.93'
列是第8列,那么您将使用(Python使用基于0的索引):

现在,您从该字符串中获得了一个浮点数,您可以对其进行测试:

with open('filename.csv', 'rb') as f:
    reader = csv.reader(f, delimiter='#')
    for row in reader:
        amount = float(row[7])
        if amount <= 1500:
            print row
以open('filename.csv','rb')作为f的
:
reader=csv.reader(f,分隔符='#')
对于读取器中的行:
金额=浮动(第[7]行)

如果金额您有一个CSV文件;使用:

新的每个
对象是一个字符串列表;每个字符串表示文件中的一列

假设
'1638.93'
列是第8列,那么您将使用(Python使用基于0的索引):

现在,您从该字符串中获得了一个浮点数,您可以对其进行测试:

with open('filename.csv', 'rb') as f:
    reader = csv.reader(f, delimiter='#')
    for row in reader:
        amount = float(row[7])
        if amount <= 1500:
            print row
以open('filename.csv','rb')作为f的
:
reader=csv.reader(f,分隔符='#')
对于读取器中的行:
金额=浮动(第[7]行)


如果USD之前的文本包含数字,则包含数字,但数字指的是日期。例如:2014-02-27@jrd1我已经添加了完整的行。对不起!这就是整行,像那样切换分隔符吗?啊,第一列是带引号的,本身就是一个逗号分隔(嵌套)的CSV行。USD前面的文本是否包含数字?它包含,但数字指的是日期。例如:2014-02-27@jrd1我已经添加了完整的行。对不起!这就是整行,像那样切换分隔符吗?啊,第一列被引用,它本身就是一个逗号分隔(嵌套)的CSV行。啊,这很有意义!我从未想过#可以是分隔符,因此我不知道它可以作为CSV文件使用。我在原始问题中添加了整行,并使用了
行[5]
,但由于某种原因,出现了以下错误:
值错误:无法将字符串转换为浮点:
@Infection:您确定所有行在第6列中都有浮点值吗?@Infection:尝试只打印
行[5]
,或使用
Try:
except ValueError:print row[5]
要调试的
amount=..
行周围的异常处理程序。啊,您提出了一个很好的观点。我刚刚又把文件翻了一遍。实际上并非所有的行都有浮点值。有时它是空的,即:
#“true”#Total:#
@Infection:那么它可能是
amount=float(第[5]行),如果第[5]行的值为0
,或者类似的值。啊,这很有道理!我从未想过#可以是分隔符,因此我不知道它可以作为CSV文件使用。我在原始问题中添加了整行,并使用了
行[5]
,但由于某种原因,出现了以下错误:
值错误:无法将字符串转换为浮点:
@Infection:您确定所有行在第6列中都有浮点值吗?@Infection:尝试只打印
行[5]
,或使用
Try:
except ValueError:print row[5]
要调试的
amount=..
行周围的异常处理程序。啊,您提出了一个很好的观点。我刚刚又把文件翻了一遍。实际上并非所有的行都有浮点值。有时它是空的,即:
#“true”#Total:#
@Infection:如果第[5]行为0,则它可能是
金额=浮动(第[5]行),或者类似的东西。
with open('filename.csv', 'rb') as f:
    reader = csv.reader(f, delimiter='#')
    for row in reader:
        amount = float(row[7])
        if amount <= 1500:
            print row