0

次のような行を含むファイル「data.txt」があります

4, "124 Sesame, Street Lane", Chicago, IL
5, 2342 Main Street, Denver, CO
6, 124 Some Street, Los Angelos, CA

このファイルを1行ずつ読み取り、フォームのデータのタプルに分割するPythonスクリプトがあります(id, street address, city, state)。スクリプトは、各行をコンマで分割します。

line = file.readline()
line_tuple = line.split(',')

2つの異なるデータではなく、タプル内のエンティティ全体と見なしたい二重引用符で囲まれたテキストのチャンクを持つ行があるため、このメソッドは明らかに機能しません。

カンマで分割するときに二重引用符のブロックを単一のエンティティとして処理するようにPythonに指示するにはどうすればよいですか?

最初に引用符で分割し、次にコンマで分割しようとしましたが、その逆も同様ですが、これらのメソッドは私がやろうとしていることを実現していないようです。

4

2 に答える 2

2

これは、「カンマ区切り値」または短い「csv」と呼ばれます。Pythonにはそれを読むためのライブラリがあります。

チェックアウト:http ://docs.python.org/2/library/csv.htmlまたはPython 3を使用している場合は、 http ://docs.python.org/3/library/csv.html。

于 2012-12-02T20:24:22.590 に答える
2

実際のCSVパーサーを使用します。Python 2Python 3

# default delimiter is , and default quotechar is "
>>> import csv
>>> with open('eggs.csv', newline='') as csvfile:
...     spamreader = csv.reader(csvfile)
...     for row in spamreader:
...         print(', '.join(row))
Spam, Spam, Spam, Spam, Spam, Baked Beans
Spam, Lovely Spam, Wonderful Spam
于 2012-12-02T20:24:39.563 に答える