1

テーブルからいくつかのデータを解析しようとしているときに、小さな問題が発生しました。私のプログラムはテーブルの行を読み取り、それを文字列としてリストに入れます(Pythonはこれをデフォルトでreader.next()関数で実行します)。同じテーブルスペースの一部のテキストをコンマで区切るまでは、すべて問題ありません。この場合、プログラムはコンマを区切り文字と見なし、1つではなく2つのリストインデックスを作成します。これにより、list[0].split(';')不可能なことが起こります。

私は口頭で説明するのが苦手なので、説明させてください。

csv_file = | House floors | Wooden, metal and golden | 2000 |   # Illustration of an excel table

reader = csv.reader(open('csv_file.csv', 'r'))
row = reader.next()  # row: ['House floors;Wooden', 'metal and golden; 2000']
columns = row.split(';')  # columns: ['House floors, Wooden', 'metal and golden', '2000']

# But obviously what i want is this:
# columns : ['House floors', 'Wooden, metal and golden', '2000']

ご助力ありがとうございます!

4

2 に答える 2

5

区切り文字を設定しますhttp://docs.python.org/2/library/csv.html

csv.reader(fh, delimiter='|')
于 2012-11-15T19:29:49.867 に答える
0

正しい区切り文字を設定する必要があります。これは、あなたの場合、|または;(OPの例からは明らかではありません)例です。

csv.reader(csvfile, delimiter=';')

"House floors;Wooden, metal and golden;2000"csvモジュールを使用して簡単に解析できるようなデータがあると仮定します

import csv
import StringIO
data = "House floors;Wooden, metal and golden;2000"

csvfile = StringIO.StringIO(data)

for row in csv.reader(csvfile, delimiter=';'):
    print row

出力:

['House floors', 'Wooden, metal and golden', '2000']
于 2012-11-15T19:28:37.753 に答える