0

「file.write(repr(fieldNames1))」が「fieldNames1」に入力した内容を書き込むようにするにはどうすればよいですか?

import easygui

#Multi Enter Box
fieldNames1= ['Situation:(Example: Waiting for a friend who is late.)','Thoughts:(EXAMPLE: My friend Bob is always late!)','Emotions:(EXAMPLE: Mad & Stressed)','Behavior:(EXAMPLE: Arguing with family)']

#Write to file
file = open('Fieldnames test.txt', 'a')
file.write(repr(fieldNames1))
file.close()

「fieldnNames1」に入力した内容に関係なく、次のテキストを含む「Fieldnames test.txt」というファイルを作成します。

['状況:(例: 遅れてくる友達を待っている。)', '考え:(例: 友達のボブはいつも遅れる!)', '感情:(例: 怒ってストレスを感じている)', '行動:(例: 家族との口論)']

4

1 に答える 1

2

問題は、リストを呼び出すrepr()と、リストから単一の文字列が作成されることです。あなたが望んでいるのは次のようなものです:

f = open('output.txt', 'a')
f.write('\n'.join(fieldNames1))
f.close()

このwrite()メソッドは改行を自動的に作成しないjoin()ため、プラットフォームに適した改行 ( など\n) を使用して、文字列のリストをまとめます。ファイル オブジェクトの詳細については、Python ドキュメントを参照してください。

また、は実際には Python 関数であるfileため、とは異なる変数を使用することをお勧めします。fileコードは機能しますが、予想外の事態が発生する可能性があることに注意してください。

于 2011-11-04T06:34:02.650 に答える