2017-09-14 190 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