Python逐列读取文本文件

时间:2013-10-29 20:20:35

标签: python file-io split

所以我有一个看起来像这样的文本文件:

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 个答案:

答案 0 :(得分:7)

您有一个CSV文件,请使用csv module进行阅读:

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文件可以在此过程中耗尽所有可用内存。