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

Raj*_*eev 7 python

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

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

输出:['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'] 
Run Code Online (Sandbox Code Playgroud)

wag*_*eer 16

我还建议使用csv模块.它易于使用,并且如果您想要在表格中读取类似CSV格式(选项卡/空格/其他分隔的内容)的结构,则最适合.

模块文档提供了其中最简单的用法据称是很好的例子:

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

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

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

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

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


ely*_*ase 6

它应该工作,但最好使用'with':

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

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