我使用以下内容来读取制表符分隔文件。文件中有三列,但是当我打印列标题时,第一列被忽略。我是否也可以包含第一列
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']
答案 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")
如果没有,那么你的文件可能没有所需的格式。