将制表符分隔值写入文件

lea*_*ner 6 python

从一个文件,我已经采取了一条线,使用分为5列split().但我必须在输出文件中将这些列写为制表符分隔值.

可以说我有l[1], l[2], l[3], l[4], l[5]...总共5个条目.我如何使用python实现这一目标?而且,我无法将l[1], l[2], l[3], l[4], l[5]值写入输出文件.

我尝试了这两个代码,两个都不工作(我使用的是python 2.6):

代码1:

with open('output', 'w'):
   print l[1], l[2], l[3], l[4], l[5] > output
Run Code Online (Sandbox Code Playgroud)

代码2:

with open('output', 'w') as outf:
   outf.write(l[1], l[2], l[3], l[4], l[5])
Run Code Online (Sandbox Code Playgroud)

Mak*_*oto 12

您可以在with表示您要写入的文件的语句中使用参数.从那里,使用.write().这假设所有内容l都是字符串,否则你必须用它们包装所有内容str().

with open('output', 'w') as f:
    f.write(l[1] + "\t" + l[2] + "\t" + l[3] + "\t" + l[4] + "\t" + l[5] + "\n")
Run Code Online (Sandbox Code Playgroud)

或者,更有效率,您可以使用.join():

with open('output', 'w') as f:
    f.write('\t'.join(l[1:]) + '\n')
Run Code Online (Sandbox Code Playgroud)


Raf*_*ler 5

write()方法将字符串作为其第一个参数(不是可变数量的字符串).试试这个:

outf.write(l[1] + l[2] + l[3] + l[4] + l[5])  
Run Code Online (Sandbox Code Playgroud)

或者更好的是:

outf.write('\t'.join(l) + '\n')
Run Code Online (Sandbox Code Playgroud)