列表附加在python中跳过一行
我正在努力解决cs50课程中的一个问题集 我通过csv.DictReader从csv文件中读取数据,我想在一个列表中获取第一行(包含标题),然后在另一个列表中获取其他行 我的实现是这样的列表附加在python中跳过一行,python,csv,dictionary,cs50,Python,Csv,Dictionary,Cs50,我正在努力解决cs50课程中的一个问题集 我通过csv.DictReader从csv文件中读取数据,我想在一个列表中获取第一行(包含标题),然后在另一个列表中获取其他行 我的实现是这样的 line_count = 0 with open(argv[1], "r") as csvfile: csvreader = csv.DictReader(csvfile) for row in csvreader: if line_count == 0:
line_count = 0
with open(argv[1], "r") as csvfile:
csvreader = csv.DictReader(csvfile)
for row in csvreader:
if line_count == 0:
fields = row
line_count += 1
else:
people.append(row)
line_count += 1
''' or
fields = []
with open(argv[1], "r") as csvfile:
csvreader = csv.DictReader(csvfile)
fields = next(csvreader)
for row in csvreader:
people.append(row)
'''
在这两种方式中,我的csv文件中标题后的第一行被跳过
csv看起来像这样
name,AGATC,AATG,TATC
Alice,2,8,3
Bob,4,1,5
Alice被跳过,不会进入我的列表。DictReader假定有一个标题,并为您预读它。
DictReader
的一个特点是,您可以使用列名访问行中的数据,因此它总是将第一行作为标题读取。您的注释代码已接近正常工作状态,即
FirstName,LastName,Age
John,Doe,25
Jane,Doey,26
可通过以下内容阅读:
with open(argv[1], "r") as csvfile:
csvreader = csv.DictReader(csvfile)
fields = csvreader.fieldnames # ['FirstName','LastName','Age']
for row in csvreader:
people.append(row)
csv.Dictreader
已经为您跳过了标题行,所以您不需要手动跳过它。谢谢@Oli我使用了这样的语法,现在它对我有用csvreader=csv。对于csvreader中的行,Dictreader(csvfile):fields=row break csvreader=csv.Dictreader(csvfile)对于csvreader中的行:people.append(行)