Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
python csv |如果行=x,则打印包含x的列_Python_Python 3.x_Csv - Fatal编程技术网

python csv |如果行=x,则打印包含x的列

python csv |如果行=x,则打印包含x的列,python,python-3.x,csv,Python,Python 3.x,Csv,我是python编程新手,请原谅我犯了任何错误。我正在编写一个python脚本来读取csv文件,并打印出列中所需的单元格(如果该列包含行中的信息) | A | B | C ---|----|---|--- 1 | Re | Mg| 23 ---|----|---|--- 2 | Ra | Fe| 90 例如,Iif-elseC行的值介于20到24之间。然后,如果条件通过,它将返回单元格A1(Re)作为结果 目前,我只有以下几点,我不知道如何从这里开始 f = open( 'ima

我是python编程新手,请原谅我犯了任何错误。我正在编写一个python脚本来读取csv文件,并打印出列中所需的单元格(如果该列包含行中的信息)

   | A  | B | C
---|----|---|---
1  | Re | Mg| 23 
---|----|---|---
2  | Ra | Fe| 90
例如,I
if-else
C行的值介于20到24之间。然后,如果条件通过,它将返回单元格A1(Re)作为结果

目前,我只有以下几点,我不知道如何从这里开始

f = open( 'imageResults.csv', 'rU' )
for line in f:
     cells = line.split( "," )
     if(cells[2] >= 20 and cells[2] <= 24):
f.close()

您应该使用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)
输出将是:

$ python script.py
['Re', 'Mg', '23']
['Ku', 'Rt', '20']
更新:

如果在[第一]行中有一个标题,我如何使其工作

有一个csv.DictReader,就是为了这个。事实上,使用DictReader更安全,尤其是当列的顺序可能改变或者在第三列之前插入列时。在
data.csv

Name,Lat,Ref
Re,Mg,23
Ra,Fe,90
Ha,Ns,50
Ku,Rt,20
那么这就是python脚本:

import csv
with open('data.csv', 'rb') as f:
    for line in csv.DictReader(f):
        if 20 <= int(line['Ref']) <= 24:
            print(line)
导入csv
以open('data.csv','rb')作为f:
对于csv.DictReader(f)中的行:

如果20
if int(cells[2])>=20和int(cells[2]),那么最好使用csv解析器,因为csv格式比人们想象的要复杂。感谢大家的欢迎,它解决了我的问题!我还有一个问题,如果让我们假设我要把一个标题(字符串)和数字放在一起,我如何让它工作?例如(从上到下),Ref>23>90>50>20@xainnnn:我在上面的答案中添加了一个处理标题的部分
Name,Lat,Ref
Re,Mg,23
Ra,Fe,90
Ha,Ns,50
Ku,Rt,20
import csv
with open('data.csv', 'rb') as f:
    for line in csv.DictReader(f):
        if 20 <= int(line['Ref']) <= 24:
            print(line)