2009-07-05 12 views
7

私はPythonでCSVコンポーネントをテストしています。私はそれにいくつか問題があります。python csv question

私はかなり標準的なcsv文字列を持っていますが、デフォルトのオプションはすべて私のテストに合っているようですが、結果は1行、2行、3行、4行、5行、6行、7行、8行行?

提供されている啓発のおかげで多くのことをありがとう!

 
Python 2.6.2 (r262:71600, Apr 16 2009, 09:17:39) 
[GCC 4.0.1 (Apple Computer, Inc. build 5250)] on darwin 
Type "help", "copyright", "credits" or "license" for more information. 
>>> import csv 
>>> c = "1, 2, 3, 4\n 5, 6, 7, 8\n" 
>>> test = csv.reader(c) 
>>> for t in test: 
...  print t 
... 
['1'] 
['', ''] 
[' '] 
['2'] 
['', ''] 
[' '] 
['3'] 
['', ''] 
[' '] 
['4'] 
[] 
[' '] 
['5'] 
['', ''] 
[' '] 
['6'] 
['', ''] 
[' '] 
['7'] 
['', ''] 
[' '] 
['8'] 
[] 
>>> 
+0

新しいものの代わりにこの1つを閉じたことに注意してください。他のものへの回答はここでは役に立ちますが、それほど多くはありません。これはまだ独創性のバッジを取得します。 – Veedrac

答えて

8

csv.readerは反復可能期待。あなたはそれを与えた"1, 2, 3, 4\n 5, 6, 7, 8\n";反復は文字を生成する。 ["1、2、3、4 \ n"、 "5、6、7、8 \ n"]を与えてみてください。

2

テスト= csv.reader(c.split( 'の\ n'))

3

csv.readerは、線を返す反復可能または反復子をとります(the docsを参照)。文字列を渡しています。これは、単一の文字を返す繰り返し可能な文字列です。

したがって、csv.reader(c.splitlines())または類似の構造を使用してください!

2

これをもっとファイルのようにするには、これを試してみてください。

import StringIO 
c= StringIO.StringIO("1, 2, 3, 4\n 5, 6, 7, 8\n") 

ここでファイルは、ファイルのようです。ファイルとは、時間の大部分(すべてではないにせよ)でCSVで使用するものです。