2016-06-24 4 views
1

私はPythonで.csvファイルを読み込んでそれを行に基づいて印刷するスクリプトを作成しています。実行中にエラーは発生しませんが、印刷されません。 コードは以下の通りです。それはすべてのエラーを表示するdoesntの: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」などのための)任意のランダムな文字列で、「行」を置き換えるよう単語「行」のdoesntは、コード内の任意の意義を持っていることを見出しました。 。 PycharmをIDEとして使用しています。

+0

- >あなたはだからあなたのソリューションは、彼らが解決策に動作しない理由はOPが求めている機能していてもライン 'exampleData =リスト(exampleReader)' – Joram

+0

を使用しないでください。あなたはそれについていくつか光を当てることができますか? –

答えて

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

行を印刷する特定のタスクを考えれば、より簡単なファイル処理で再生する価値があるかもしれません。 exampleReader内の行のための

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

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

を削除exampleData – yeiniel

+0

確かに!反復子をターンテーブル上の腕と考える。それは外側(最初のトラック)から始まり、それは中央(アルバムの最後)まで通ります。そこに着くと、それは**完了**です。コードがforループを開始すると、 'reader'は空です(終了しました)。 – pcurtain

+0

また、forループはOPに1つのprintステートメントを追加した場合、それ自体を説明していたでしょう: 例の行の場合: ' - '、行 – pcurtain

関連する問題