2017-10-31 5 views
2

インポートファイルからリストを作成しようとしていますが、正しく動作させることができません。ファイルをPythonのリストに変換する方法

import csv 

fileName = "/home/bluebird/Desktop/Deck" 
# the file is this 
# A,A,@,@,$,$,&,&,!,!,H,H,Z,Z,W,W 

f = open(fileName, 'r') 
reader = csv.reader(f) 
allRows = [row for row in reader] 

print(allRows) 
size = len(allRows) 
print(size) 

私が得る結果は次のとおりです。あなたは、リスト内のリストを持っているように思え

['A', 'A', '@', '@', '$', '$', '&', '&', '!', '!', 'H', 'H', 'Z', 'Z', 'W', 'W'] 
16 
+0

い' ALLROWS = [読者の行の行]をしたいと

16 

? – mypetlion

+1

私はちょうどあなたがリストにリストを持っているように見えます。 – SPYBUG96

+0

あなたが私にそれをもっと詳しく説明したいならば、ちょうど私に知らせてください – SPYBUG96

答えて

1

[['A', 'A', '@', '@', '$', '$', '&', '&', '!', '!', 'H', 'H','Z', 'Z', 'W', 'W']] 
1 

しかし、私が取得しようとしています。 file

reader = csv.reader(f) 

意志readreaderobjectを返す:

クイックフィックスは

allRows = allRows[0] 
2

lineになり。代わりにdataの各rowlistに変換するlist-comprehensionを使用しての、あなただけの、よりPython的であるlist()にそれを渡すことができます:

allRows = list(reader) 

allRowslistslistrows)です。

あなただけのfileで1 rowを持っているように、この場合はallRowsは次のとおりです。

[['A', 'A', '@', '@', '$', '$', '&', '&', '!', '!', 'H', 'H', 'Z', 'Z', 'W', 'W']] 

そしてallRowslengthlen(allRows)は)1になるだろう - ちょうど1 rowlistではありとして。

あなたが最初rowを抽出したい場合は、あなたが取ることができるから最初elementrowlistと:その後、

firstRow = allRows[0] 

あなたが行う場合:

print(firstRow) 

あなたが得ます:

['A', 'A', '@', '@', '$', '$', '&', '&', '!', '!', 'H', 'H', 'Z', 'Z', 'W', 'W'] 

および:

print(len(firstRow)) 

はあなたを与える:あなたは[0] `作業:)

+0

大変ありがとうございます。 – user8721051

関連する問題