我想要在特定数字范围内的特定行中读取一段代码。如果我使用例如row['DISTANCE'] <= '300'
:该语句返回&#39; 300&#39;但也是任何大于&#39; 300的数字。我想将特定行写入特定范围内的文件。此外,例如,如果语句是row['SCHEDULED'] < row['PERFORMED']
,则它可以工作。有什么建议吗?
以下是代码段:
with open('test.csv', 'rb') as infile:
reader = csv.DictReader(infile)
fieldnames = ['SCHEDULED','PERFORMED','AVAIL', 'DIST']
outfile = open('ttest.csv','wb')
csvwriter = csv.DictWriter(outfile, delimiter=',', fieldnames=fieldnames, extrasaction = 'ignore')
csvwriter.writerow(dict((fn,fn) for fn in fieldnames))
for row in reader:
if ['DISTANCE'] <= '300':
csvwriter.writerow(row)
infile.close()
outfile.close()
这是我的outfile的样本:
SCHEDULED PERFORMED AVAIL DIST
142 139 19459 1061
22 20 0 278
21 19 0 278
21 20 0 278
22 21 0 1484
答案 0 :(得分:2)
字符串比较不遵循与整数比较相同的规则。你想要的是整数比较,即:
if int(row["DISTANCE"]) <= 300:
proceed_with_row(...)