如何读取CSV文件并跳过标题行



我正在使用以下代码

import csv
with open('skill.csv', 'r') as csv_file:
csv_reader = csv.DictReader(csv_file)
# next(csv_reader)
for line in csv_reader:
print(line)

以下是csv包含的内容:

Skill,amount_of_skill
First aid,50
Stealth,40

它输出:

OrderedDict([('Skill', 'First aid'), ('amount_of_skill', '50')])
OrderedDict([('Skill', 'Stealth'), ('amount_of_skill', '40')])

我如何才能说:

First Aid    50
Stealth   40

您正在阅读dict,但您需要一个简单的csv。

应该是这样的:

import csv
with open('skill.csv', 'r') as csv_file:
csv_reader = csv.reader(csv_file, delimiter=',')
next(csv_reader) #to skip header
for line in csv_reader:
print('  '.join(line))

您的代码的问题是您没有访问字典的values,您只打印保存每行数据的字典。

with open("skill.csv", "r") as csv_file:
reader = csv.DictReader(csv_file, delimiter=",")
for line in reader:
print(" ".join(line.values()))

输出:

First aid 50
Stealth 40

您也可以在打印语句中使用开箱运算符(*(:

print(*line.values())

您正在将csv文件读取到字典中。

您不需要任何库来读取csv。。您可以打开文件并用逗号分隔字段:

with open('skill.csv', 'r') as csv_file:
csv_reader = csv_file.readlines()

for line in csv_reader:
print(line.replace(',', ' '))

输出:

First aid 50
Stealth 40

纯粹为了好玩。。。如果你想把它全部分解成一行,你可以这样做:

print(*[i.replace(',', ' ') for i in open('skills.csv').readlines()[1:]], sep='')

输出:

First aid 50
Stealth 40

可读。。。不是真的。享乐对


更可读的东西:

with open('skills.csv') as f:
lines = f.readlines()[1:]
print(*[i.replace(',', ' ') for i in lines], sep='')

最新更新