有一个关于Python列表的简单问题。我正在尝试读取包含以下数据的csv文件:
with open('file.csv') as f:
lines = f.read().splitlines()
lines = [x.strip() for x in lines]
我能够基于索引提取csv文件的文件值,但无法过滤相应的值。下面给出的是csv文件中数据的示例视图
name,parent,child
Apple,iPhone,iPhoneX
Samsung,Note,Note 5
任何人都可以提供帮助,如何从上面提取iPhone和iPhoneX等值。谢谢。
答案 0 :(得分:4)
该文件是CSV文件。为什么不退后一步,将其视作这样呢?
通过使用csv.DictReader
,索引被列名完全封装:
import csv
with open('file.csv') as f:
reader = csv.DictReader(f)
for line in reader:
print(line['parent'], line['child'])
输出
# iPhone iPhoneX
# Note Note 5
如果由于某种原因您坚持要处理索引,那么您也可以这样做:
import csv
with open('file.csv') as f:
reader = csv.reader(f)
next(reader) # skipping the header line
for line in reader:
print(line[1], line[2])
输出
# iPhone iPhoneX
# Note Note 5
答案 1 :(得分:0)
您可以使用DictReader,如https://docs.python.org/2/library/csv.html中所述,文件第一行中的值将用作每一行的字段名(属性)
import csv
with open('file.csv') as csvfile:
reader = csv.DictReader(csvfile)
for row in reader:
print(row['name'], row['parent'], row['child'])