Python 使用csv.DictReader读取列标题,但不使用fieldnames()方法
我在名为“my_file.csv”的csv文件中有以下(玩具)数据:Python 使用csv.DictReader读取列标题,但不使用fieldnames()方法,python,csv,Python,Csv,我在名为“my_file.csv”的csv文件中有以下(玩具)数据: Person City State Age John Los Angeles CA 34 Mary Boston MA 27 Phil London N/A 30 我希望能够打印一个标题列表。我使用以下命令创建一个读取器对象,然后打印字段名: import csv filepath = my_file.csv" co
Person City State Age
John Los Angeles CA 34
Mary Boston MA 27
Phil London N/A 30
我希望能够打印一个标题列表。我使用以下命令创建一个读取器
对象,然后打印字段名
:
import csv
filepath = my_file.csv"
col_names = []
with open(filepath, 'r') as csvfile:
reader = csv.DictReader(csvfile)
print(reader.fieldnames)
是否可以使用fieldnames
()方法打印字段名而不打印?(例如,在读取器
上迭代并以某种方式访问字典键)
谢谢 您只需使用
readlines
读取文本文件,然后使用带分隔符的.split()
拆分第一行。使用DictReader
而不使用其字段名
值似乎是一个特别奇怪的限制。无论如何,只需将csv文件作为普通csv打开,并读取第一行-这将为您提供字段名称
import csv
filepath = my_file.csv"
with open(filepath, 'r') as csvfile:
reader = csv.reader(csvfile)
for row in reader:
headerrow = list(row)
break
print(headerrow)
只是想知道你是否可以做
reader=dict(reader)
然后做reader.keys()
为什么不能使用字段名
?这可能适用于幼稚的情况,但是会失败,例如,如果一个字段包含分隔符。你是对的,但必须有一些明确的拆分方法,我不确定它来自于要求。我希望能够迭代“键”,将它们填充到列表中,然后打印列表。但是,我不确定这是否可行。是的,我知道关于字段名(我们免费获得该字段名)。因此,如果您有逻辑将它们分开,请阅读第一行并分开/这就是我正在努力解决的问题。我知道如何迭代整个dict和append。但是,这会产生大量无关数据。我不知道怎么才能拿到第一条线。