我是python编程的新手,如果我犯了任何错误,请原谅我。我正在编写一个python脚本来读取一个csv文件,如果它包含行中的信息,则打印出列所需的单元格。
192.168.33.13 dmsdb_1
例如,I | A | B | C
---|----|---|---
1 | Re | Mg| 23
---|----|---|---
2 | Ra | Fe| 90
行C的值介于20到24之间。然后,如果条件通过,它将返回Cell A1(Re)作为结果。
目前,我只有以下内容,我不知道如何从这里开始。
if-else
This可能包含我的问题的答案,但我似乎无法使其发挥作用。
更新
如果在行中有标题,我该如何让它工作?我想将条件更改为字符串,但如果我想搜索一系列值,则无效。
f = open( 'imageResults.csv', 'rU' )
for line in f:
cells = line.split( "," )
if(cells[2] >= 20 and cells[2] <= 24):
f.close()
答案 0 :(得分:2)
您应该使用csv阅读器。它内置于python中,因此无需安装依赖项。然后你需要告诉python第三列是一个整数。这样的事情会做到:
import csv
with open('data.csv', 'rb') as f:
for line in csv.reader(f):
if 20 <= int(line[2]) <= 24:
print(line)
将此数据放在data.csv
:
Re,Mg,23
Ra,Fe,90
Ha,Ns,50
Ku,Rt,20
输出将是:
$ python script.py
['Re', 'Mg', '23']
['Ku', 'Rt', '20']
更新:
如果在[first]行中有一个标题,我该如何让它工作?
有csv.DictReader
就是这样。实际上,使用DictReader更安全,特别是当列的顺序可能更改或您在第三列之前插入列时。根据{{1}}
data.csv
然后是python脚本:
Name,Lat,Ref
Re,Mg,23
Ra,Fe,90
Ha,Ns,50
Ku,Rt,20
P.S。欢迎来到python。这是学习编程的好语言