2016-06-24 60 views
1

我在python中編寫腳本來讀取.csv文件並在row.in的基礎上打印它我執行時沒有收到任何錯誤,但它沒有打印。代碼如下: 代碼如下。for循環無法在python中使用csv文件

import os 
import csv 

os.chdir('C:\ingenium') 

exampleFile = open('testt.csv') 
exampleReader = csv.reader(exampleFile) 
exampleData = list(exampleReader) 
for row in exampleReader: 
    print (row) 
exampleFile.close() 

後來我發現,該「行」字不必須在代碼中任何意義,因爲我的任何隨機字符串代替「行」(用於如:「GCGC」),它不顯示任何錯誤。 。 我正在使用Pycharm作爲IDE。

+0

在exampleReader行 - >你不使用exampleData – Joram

+0

所以才刪除行'exampleData =名單(exampleReader)' –

回答

0

試試這個:

import os 

import csv 

os.chdir('C:\ingenium') 

exampleFile = open('testt.csv','r') 
exampleReader = csv.reader(exampleFile) 
for row in exampleReader: 
    print (row) 
exampleFile.close() 

摩西說,你已經通過導入CSV列出用盡csv.reader。

3

你的錯誤是在這裏:

exampleData = list(exampleReader) 

你已經筋疲力盡發電機對象exampleReader,所以當你迭代它,你什麼也得不到。

你應該遍歷新的列表,而不是:

for row in exampleData: 
    print(row) 
0

鑑於具體的任務,打印行,這可能是值得玩簡單的文件處理。

import os 
os.chdir('C:\ingenium') 

lines = open('testt.csv','r').readlines() 
for line in lines: 
    print (line) 
+0

即使你的解決方案適用的OP是問爲什麼他們的解決方案不起作用。你能介紹一下嗎? – yeiniel

+0

當然!把迭代器想象成轉盤上的手臂。它從外部開始(第一首曲目),並通過中間的方式(專輯結束)。當它到達那裏,它**完成**。當他的代碼開始for循環時,'閱讀器'是空的(完成)。 – pcurtain

+0

另外,如果循環添加了一條打印語句,for循環會自行向OP解釋,例如: 用於示例閱讀器中的行: print' - ',row – pcurtain