2017-08-28 7 views
-1

整数の配列をテキストファイルに書き込む必要がありますが、書式化された解決法は各項目の後にコンマを追加しています。最後のものは避けてください。整数配列をPythonのテキストファイルに書き込むときに最後のカンマを避けるには

 with open(name, 'a+') as f: 
      line = ['FOO ', description, '|Bar|'] 
      f.writelines(line) 
      f.writelines("%d," % item for item in values) 
      f.writelines('\n') 

各行がフォローする配列が含まれているものの小さな記述で始まり、その後、整数のリスト:

のコードは次のようになります。ループに新しい行が追加されると、新しい行が追加されます。

私が手出力は次のようなものになります。

FOOの説明|バー| 274,549,549,824,824,824,824,824,794,765,765,736,736,736,736,736、

をそして、私はそれが最後のコンマなしで、次のようになりたいと思い:

FOOの説明|バー| 274,549,549,824,824,824,824,824,794,765,765,736,736,736,736,736

私はwritelines()で動作する解決策を見つけることができませんでした。追加のループで長い処理を避ける必要があります。

+0

文字列をマッピングなどでリストに変換します。obj.rstrip( '、')その後、最終的にファイルに書き込むテキストファイル(文字列)が必要になります。 ! –

+4

''、'。join(values)'を書式の代わりに使用しますか? –

+0

@ジョン、それは答えです。あなたがそれを書き留めたくなければ、私はポイントを取るでしょう。 :-) – user1712447

答えて

7

使用join

f.writelines(",".join(map(str,values))) 

valuesが最初mapで、数字の代わりに、文字列のリストにマッピングされていることに注意してください。

+0

これはうまくいくでしょうが、文字列に変換せずに数字を保持する必要があります – TeilaRei

+0

ファイルに書き込まれる内容は常に文字列として書き出され、 '%'演算子で文字列に変換され、あなたの質問の終わりには文字列があります。だから私は尋ねる必要があります:あなたはどういう意味ですか? – trincot

+0

それは良い点です。何らかの理由で私はその変容を知らなかったのです。私は実際にデータの元のタイプを保持する方法を探していたと思いますが、テキストファイルでは可能ではないようです。 – TeilaRei

1

以下の例を使用してスライスすることができます。 最後の文字は常に削除されます。

line = ['FOO ', description, '|Bar|'] 
line = line[:-1] 
f.writelines(line) 
0

ここで印刷機能を使用できます。

print(*values,sep=',',file=f) 

python2を使用している場合は、印刷機能をインポートしてください。

from __future__ import print_function 
0

スライシングは最良のアプローチであり、少なくともあなたの場合のあらゆる状況に適しています。

関連する問題