Python写入TSV的两个Tab-Separated Delimiter

时间:2014-11-14 03:40:05

标签: python csv tsv writer

我有以下代码:

f = open("test.tsv", 'wt')
try:
    writer = csv.writer(f, delimiter='\t')
    for x in range(0, len(ordered)):
        writer.writerow((ordered[x][0],"\t", ordered[x][1]))
finally:
    f.close()

我需要TSV文件让有序[x] [0]由​​两个带有有序[x] [1]的选项卡分隔 “\ t”增加了空格,但它不是标签,输出中显示括号。

谢谢!

1 个答案:

答案 0 :(得分:1)

您可以将"\t"替换为""以获得您想要的内容:

writer.writerow((ordered[x][0],"", ordered[x][1]))

实际上,中间的空字符串将被两侧的标签包围,有效地在ordered[x][0]ordered[x][1]之间放置两个标签。

然而,更自然的代码完全相同的事情是:

with open("test.tsv", "w") as fh:
    for e in ordered:
        fh.write("\t\t".join(map(str, e[:2])) + "\n")

我在哪里:

  • 使用with语句(解释为here)而不是try ... finally构建
  • 删除了t函数中的open模式(t是默认行为)
  • 使用ordered而不是使用索引
  • 迭代for ... in中的元素
  • 使用join代替csv编写器:这些适用于分隔符为单个字符的情况