Python 使用csv.DictReader读取列标题,但不使用fieldnames()方法

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

我在名为“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"
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。但是,这会产生大量无关数据。我不知道怎么才能拿到第一条线。