[英]How to read a file line by line, then print the line if it contains a string with a range of value in Python?
我是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的行? 如果有人能指出我正确的方向,我将不胜感激!
您有一个CSV文件; 使用csv
模块 :
import csv
with open('filename.csv', 'rb') as f:
reader = csv.reader(f, delimiter='#')
for row in reader:
新的每row
对象是一个字符串列表; 每个字符串代表文件中的一列。
假设'1638.93'
8列,则您将使用(对于使用基于0的索引的Python):
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
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.