2017-04-24 75 views
0

我有下面的代碼用於使用Python將我的輸出寫入文件。寫入一個沒有引號的文件,在Python中沒有逗號

ID= # type is <class 'str'> 
dictionary={} #Dictionary 

    for item in dictionary.keys(): 
     output=str([Question_ID,item,dictionary[item]]) 
     target = open('result.relevancy', 'a') 
     target.write(output+'\n') 

如下輸出文件被創建:

['Q1', 'R6', 0.08] 

我想有隻純文本字符作爲輸出如下:

Q1 R6 0.08 

(沒有引號,逗號括號)

+2

你爲什麼要打開循環內的文件?不要這樣做。在循環外打開文件,並在寫完文件後關閉它。甚至更好:使用'with open('語法)打開文件,當你離開'with'時,它會自動關閉 –

回答

1

如果你使用python3,我假設你是從問題標籤。雖然在一個循環,我認爲這將是浪費資源來打開文件,每次迭代所以我也建議使用文件上下文如下我會建議使用與文件的說法

打印命令。

ID= # type is <class 'str'> 
dictionary={} #Dictionary 

with open('result.relevancy', 'a') as fileOut: 
    for item in dictionary.keys(): 
     print(Question_ID,item,dictionary[item],sep=' ',file=fileOut)    
1

爲什麼不是:

ID= # type is <class 'str'> 
dictionary={} #Dictionary 

    for item in dictionary.keys(): 
     output=str([Question_ID,item,dictionary[item]]) 
     target = open('result.relevancy', 'a') 
     target.write(output.replace("'", "") +'\n') 
+1

你的解決方案仍然會顯示括號。 – VMRuiz

+0

然後添加更多的替換語句來替換括號 –

4

您可以輕鬆地格式化你想要的任何格式的字符串:

output="%s %s %s" % (Question_ID, item, dictionary[item]) 

可以在https://pyformat.info/

+0

另外,如果您有可變數量的元素,則@zipa答案有效 – VMRuiz

2

找到更多的信息,您正在轉向列表轉換爲字符串。你應該做的是:

output = ' '.join([str(i) for i in [Question_ID, item, dictionary[item]]) 
0

您可以使用format,即:

output = "{} {} {}".format(Question_ID,item,dictionary[item]]) 
0

試試這個代碼:簡體

import csv 
dict={'a':'Q1', "b":'R6', "c":0.08} 
data = dict.values() 
data 
with open('records.csv', 'w') as tsvfile: // can save file in any format CSV or TSV 
    writer = csv.writer(tsvfile, delimiter='\t') 
    writer.writerow(data) 
相關問題