0

したがって、次のようなテキストファイルがあります。

1,989785345,"something 1",,234.34,254.123
2,234823423,"something 2",,224.4,254.123
3,732847233,"something 3",,266.2,254.123
4,876234234,"something 4",,34.4,254.123
...

私はここでこのコードを実行しています:

file = open("file.txt", 'r')
readFile = file.readline()

lineID = readFile.split(",")
print lineID[1]

これにより、テキスト ファイルのコンテンツを「,」で分割できますが、各行に膨大な数の ID やその他のものがあるため、それを列に分割したいと考えています。テキスト ファイルを列に分割し、列の個々の行を 1 つずつ呼び出すにはどうすればよいでしょうか。

4

1 に答える 1

7

CSV ファイルがあり、csvモジュールを使用してそれを読み取ります。

import csv

with open('file.txt', 'rb') as csvfile:
    reader = csv.reader(csvfile)
    for row in reader:

これでも行ごとにデータが得られますが、zip()関数を使用すると、代わりにこれを列に転置できます。

import csv

with open('file.txt', 'rb') as csvfile:
    reader = csv.reader(csvfile)
    for column in zip(*reader):

後者には注意してください。ファイル全体が一度にメモリに読み込まれ、大きな CSV ファイルはその過程で利用可能なすべてのメモリを使い果たす可能性があります。

于 2013-10-29T20:22:27.283 に答える