2017-09-14 188 views
0

,而我写了这个代码写在Python中的CSV文件,读取它使用列名

import csv 
    with open('persons.csv', 'w') as csvfile: 
     filewriter = csv.writer(csvfile, delimiter=',',quotechar='|') 
     filewriter.writerow(['Name', 'Profession']) 
     filewriter.writerow(['Derek', 'Software Developer']) 
     filewriter.writerow(['Steve', 'Software Developer']) 
     filewriter.writerow(['Paul', 'Manager']) 

和我得到的

['Name', 'Profession'] 
[] 
['Derek', 'Software Developer'] 
[] 
['Steve', 'Software Developer'] 
[] 
['Paul', 'Manager'] 
[] 

它留下一条线的结果之间。 如何解决?

还有一两件事我想用自己的列名即

import csv 
with open('persons.csv') as f: 
    reader = csv.reader(f) 


    for Name, Profession in reader: 
     print(Name, Profession) 

- 当我运行这段代码它显示错误读取CSV数据..

for Name, Profession in reader: 
ValueError: not enough values to unpack (expected 2, got 0) 

请建议如何它可以工作

+0

我检查了你的代码,我的csv文件正确 – AndMar

+0

对我来说也可以。它创建的csv是正确的。它看起来不像你发布的内容。对我来说,这个输出看起来像在列表解析中使用'print'的结果。 –

回答

1

csv.writer默认情况下将\ r \ n写入文件。使用以下方法来打开该文件,如果你运行的是Windows

with open('persons.csv', 'w', newline='') as csvfile: 

一旦你有了这个,空行将会消失

第二个问题是由于第一。由于您有空行,读者对这些行有0个项目,因此是例外。

+0

非常感谢 – saniavi007