如何逐行读取文件,然后在Python中打印包含值范围的字符串的行?
我是Python2.7的新手,我仍在努力掌握它的窍门 我有一个文本文件,其中有一行包含如下字符串的行:如何逐行读取文件,然后在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 =
"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