python使用分隔符读取制表符分隔文件

时间:2013-01-09 06:40:41

标签: python

我使用以下内容来读取制表符分隔文件。文件中有三列,但是当我打印列标题时,第一列被忽略。我是否也可以包含第一列

f = open("/tmp/data.txt")
for l in f.readlines():
  print l.strip().split("\t")
  break
  f.close()

输出:['session_id \ t','\ tevent_id_concat']

第一列名称为id,其中未在上述数组中打印

EDIT

print l产生以下内容

编辑1:

   'id\tsession_id\tevent_id_concat\r\n'

   Output: ['id\t', '\tevent_id_concat'] 

2 个答案:

答案 0 :(得分:16)

我还建议使用csv模块。它易于使用,并且如果您想要以类似CSV的格式(制表符/空格/其他分隔的)格式存储的结构读取,则最适合。

module documentation给出了最简单用法的好例子:

import csv
with open('/tmp/data.txt', 'r') as f:
    reader = csv.reader(f)
    for row in reader:
        print row

如果你想进行基于索引的操作,每一行都是一个非常有用的列表。

如果你想更改分隔符,有一个关键字,但我通常可以使用预定义的方言,也可以通过关键字来定义。

import csv
with open('/tmp/data.txt', 'r') as f:
    reader = csv.reader(f, dialect='excel', delimiter='\t')
    for row in reader:
        print row

我不确定这是否能解决您的问题,但使用精心设计的模块可确保您的文件出现问题,而错误仍然存​​在。

答案 1 :(得分:6)

它应该有效,但最好使用'with':

with open('/tmp/data.txt') as f:
   for l in f:
       print l.strip().split("\t")

如果没有,那么你的文件可能没有所需的格式。