2017-01-13 17 views
0

我有以下列表,我需要將列表的內容寫入由製表符分隔的文件。我嘗試打印列表,但我看到方括號也顯示出來。有沒有更好的方法來寫這個?使用python寫入特定格式的文件

list = ['a','b','c'] 
with open('file','wb') as outfile: 
    outfile.write(str(list)) 

我得到的輸出如下。

['a', 'b', 'c'] 

但我需要輸出如下,沒有方括號,也插入列表中的每個值之間的標籤空間。

'a'\t'b'\t'c' 
+1

'outfile.write(R 「\ t」 的。加入(名單C對C))' –

+2

另外,不要使用'list'作爲變量名。這是一個爲Python保留的內置名稱。改爲類似'lst'的東西。 –

+1

我注意到你保留了引號(例如''a''等等......)是有意的嗎? – tdelaney

回答

0

你想用的方法str.join()

x = list("abc") # it's bad practice to shadow the list builtin 
print(x) # not what you want 
print("\t".join(x)) # almost there - just missing the single quotes 
print("\t".join("'{}'".format(c) for c in x)) # ta-da! 
0

最好的方法取決於你有什麼樣的數據,以及如果任何地方都可能想稍後閱讀。 CSV模塊處理諸如轉義列中的分隔符(假設列數據本身具有選項卡),行結尾和引用列之類的內容。這可能最適合您的旅行需求

import csv 

data = ['a', 'b', 'c'] 
with open('file', 'w', newline='') as fp: 
    writer = csv.writer(fp, dialect='excel-tab', quotechar="'", 
     quoting=csv.QUOTE_ALL) 
    writer.writerow(data) 


# show result... 
print(repr(open('file').read())) 
相關問題