2016-08-22 9 views
1

最初に、コードは名前を取得し、wパーミッションを持つファイル(r+もテスト済み)を作成しますが、他の入力はファイルに書き込む必要があります。私は空のファイルを取得します。Pythonスクリプトはファイルを作成しますが、何も書きません

user_name_in =input("gets Input") 
fname = user_name_in 
f = input() 
ufile = open(fname,"w") 
while True: 
    f=input(answer) 
    ufile.write(f) 
+2

open(fname、 'w')でufile:ufile.write(f) 'を試したことがありますか? – Xevaquor

+3

'ufile.close()'を追加して修正するかどうか確認してください。 –

+3

@Rawingあなたはまだファイルをフラッシュする必要があります。ファイルを扱うのに常に 'with'を使います。 –

答えて

5

あなたはufileブロックとしてオープン(fnameは)とに置き換えることができます閉じていますあなたは心配する必要はありません。コード上で、あなたはあなた自身を繰り返します。例えば、最初の2行は実際には1行です。これはちょっときれいに見えるでしょう。他の人も気づいたように、answerが宣言されることはありません

fname = input("gets Input") 
with open(fname, "w") as ufile: 
    f = input('write something') 
    ufile.write(f) 

は、何の終了条件が存在しないと、入力プロンプトは、いずれかの最良のか全く存在ではありません。

+0

作品、私は "ありがとう"、感謝のまったく考えていませんでした。 – GeekyMo

+0

回答はどこか他のところで宣言されています。プログラムの文字列管理部分で外部的に宣言しました。 – GeekyMo

1

このコードは、私の作品:

user_name_in =input("gets Input") 
fname = user_name_in 
f = input() 
ufile = open(fname,"w") 
while True: 
    f=input(answer) 
    ufile.write(f) 

いくつかの注意事項: 私は答えが宣言されている場所を確認していない、どちらもPythonインタプリタは、以下を参照してくださいP、多分あなたはこの部分を貼り付けるのを忘れて実際にはこれはエラーでしたか?

ファイルの名前を変数に割り当てて、別のファイルに再割り当てする理由を理解できません。

ファイルへの書き込みを停止するにはどうすればよいですか?私が見つけた唯一の方法はCtrl-Cです。これは理想的ではありません。

ファイルを安心させるためには、私がコメントで書いたように、常にそれが世話をするとしてファイルを扱うためにwithブロックを使用

+0

変数が同じ使用になり、最適化された最終コードが修正されます。しばらくしてループを壊すだろう。私はちょうどコードの必要な部分を配置しました – GeekyMo

関連する問題