簡體   English   中英

將列表寫為tsv文件中的列

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM