![](/img/trans.png)
[英]Parsing a .TSV file and write the data into a new .TSV file by re arranging the columns
[英]Write lists as columns in tsv file
我希望将三个列表存储在tsv文件中,如下所示:
1 a yes
2 b no
3 c yes
清单:
list1 = [u'1', u'2', u'3']
list2 = [u'a', u'b', u'c']
list3 = [u'yes', u'no', u'yes']
以下代码使用csv writer方法存储它:
rowlists = zip(list1, list2, list3)
writer = csv.writer(outfile, delimiter='\t')
for row in rowlists:
writer.writerow(row)
但是,由于tsv和csv之间的格式差异,此方法在以后的处理中会导致一些错误SyntaxError: Got u'"\\t1.0'
。因此,有另一种方法可以不使用csv SyntaxError: Got u'"\\t1.0'
我正在使用python 2.7。
任何帮助将不胜感激。 谢谢,
如果您不想使用编写器,则可以手动执行。 但是请注意,管理包含定界符的列的引号会有些困难:
最简单的方法:
numItems = len(l1)
outputStr = ''
for i in range(0,numItems):
outputStr += l1[i] + "\t" + l2[i] + "\t" + l3[i] + "\n"
with open('output.tsv', "w") as outputter:
outputter.write(outputStr)
如果col数据中还包含一个'\\ t',则必须搜索每个列表项并将其用引号引起来...可以在必要时进行更新。
如果存在Unicode字符,则可以在打开文件时在写入操作中进行定义。
希望能有所帮助
csv.writer
需要传递一个打开文件对象
with open(outfile, 'w+') as f:
writer = csv.writer(f, delimiter='\t')
for row in rowlists:
writer.writerow(row)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.