0

我是 Python 2.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

但我得到了同样的错误:ValueError: could not convert string to float:

我难住了。我如何遍历每一行以检查整数值(这是字符串的一部分),然后如果它小于 USD1500,则打印该行?如果有人能指出我正确的方向,我将不胜感激!

4

1 回答 1

5

您有一个 CSV 文件;使用csv模块

import csv

with open('filename.csv', 'rb') as f:
    reader = csv.reader(f, delimiter='#')
    for row in reader:

新的每个row对象都是一个字符串列表;每个字符串代表文件中的一列。

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

amount = float(row[7])

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

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
于 2013-10-27T10:15:25.180 回答