2016-04-24 137 views
-1

我是一個總新手,並試圖解決從某人的程序中複製的一些代碼。目前:TypeError:join()只需要一個參數(給出2個)

#INITIALIZE OUTPUT FILE AND WRITE HEADER ROW 
outfp = open(outfn, "w") 
outfp.write('.'.join(fields, '\t') + '\n') # header 

產生以下錯誤:

類型錯誤:join()方法正好有一個參數(2所示)。

基於我在其他一些線程中看到的,我認爲「\ t」.join可能是一個選項,但我不清楚我如何得到這個來解決「\ t」和「\ N」。任何幫助讚賞。由於

+1

你想完成什麼?你的'join'的預期輸出是什麼? – Selcuk

回答

1

你給str.join()兩個參數:

'.'.join(fields, '\t') 

fields'\t'是兩個獨立的參數。如果你想使用標籤加入值fields,你需要使用\t作爲在其上調用str.join()方法的字符串:

'\t'.join(fields) 

我假設,試圖加入與'.'串是誤解你的這部分是如何工作的。這將產生一個字符串,這樣的話可以追加一個換行符到:

outfp.write('\t'.join(fields) + '\n') # header 

但是,如果你想製作一個製表符分隔的文件,你會好得多使用csv module

writer = csv.writer(outfn, delimiter='\t') 
writer.writerow(fields) 

csv.writer()對象負責轉換爲字符串,根據需要正確引用,編寫分隔符(上例中的選項卡)和添加換行符。

+0

謝謝 - 這工作! –

相關問題