2017-04-24 11 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を使用している場合。ループの中で、私は私も次のようにファイルのコンテキストを使用することをお勧めして反復ごとにファイルを開くために、リソースを無駄にすることだと思うが、私は、ファイル引数

でprintコマンドを使用してお勧めします。

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

でより多くの情報を見つけることができます。あなたがするべきことは:

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) 
関連する問題