只打印第二个

2024-06-01 03:24:02 发布

您现在位置:Python中文网/ 问答频道 /正文

我的CSV文件名为名称.csv

F_Name | L_Name
Sashi  | Thakur
Rup    | Chand
Nirmal | Kumar

正在尝试只打印L_Name

^{pr2}$

给了我:

KeyError: 2

谢谢


Tags: csvname名称文件名keyerrorpr2kumarnirmal
3条回答

您可以使用参数fieldnames为列提供键名称,然后按键名称打印每个列。在

import csv with open('names.csv', newline='') as csvfile:
    reader = csv.DictReader(csvfile, fieldnames=['fname', 'lname'])
    for row in reader:
        print(row['lname'])

参考号:https://docs.python.org/2/library/csv.html

索引从0开始!所以要获得第二列,您必须访问row[1]

根据您的最新评论,您希望打印第二列(索引1)中的姓氏

如果字段名不存在,则不应使用DictReader,因为它将把第一行中的任何内容作为键

import csv
with open('cs.csv', newline='') as csvfile:
reader = csv.reader(csvfile)
for row in reader:
    print(row[1])


#                         
# fieldnames are present

import csv
with open('cs.csv', newline='') as csvfile:
    reader = csv.DictReader(csvfile)
    #print(reader.fieldnames) 
    look_for = reader.fieldnames[1] #since L_name is at index 1
    for row in reader:
        print(row[look_for])

'''
csv file contents
F_Name,L_Name
Sherlock,Holmes
Bruce,Wayne

OrderedDict([('F_Name', 'Sherlock'), ('L_Name', 'Holmes')])
Holmes
OrderedDict([('F_Name', 'Bruce'), ('L_Name', 'Wayne')])
Wayne

['F_Name', 'L_Name']
Holmes
Wayne
'''

相关问题 更多 >