我正在使用以下代码
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='')