2017-03-06 14 views
0

このセクションでは、入力ファイルと別の変数(スコア)をテキストファイルに書き込む必要があります。プログラムは入力を要求し(if文が間違いなく機能している)、エラーなしで実行されますが、テキストファイルは空です。奇妙なことに、このコードを空のpythonファイルにコピーして実行すると、エラーが発生しなくなります。ここで何が起きてるの?Python:ファイルに追加しようとしましたが、何も書き込まれていません。

if Score > int(HighScores[1]): 
    print("You beat the record with " + str(Score) + " points!") 
    Name = input("What is your name?") 
    BestOf = open("High Scores.txt", "w").close() 
    BestOf = open("High Scores.txt", "a") 
    BestOf.write(Name + "\n") 
    BestOf.write(str(Score)) 
+2

それを修正し、あなたが追加した後、ファイルを閉じていますか? –

+3

また、 'BestOf = open(" High Scores.txt "、" w ")を実現します。close()'は単にファイルを切り詰めます。従って、意味をなさない。あなたは*に追加するものが残っているので、あなたはただ開いている(...、 'w') 'という時間だけで作業することができる。 –

+0

Idkがこれを実現するためには最初に書く必要がありますが、 'open(" High Scores.txt "、" w ")'は追加モードで開いていないので前の内容を上書きすると思います。 – Carcigenicate

答えて

0

「w +」モードでファイルを開いてみてください。ファイルが存在しない場合は作成されます。 'os'モジュールを使用してファイルが終了しているかどうかを確認することもできます。

import os; 
if Score > int(HighScores[1]): 
    print("You beat the record with " + str(Score) + " points!") 
    name = input("What is your name?") 
    if os.path.isfile("Scores.txt"): 
     fh = open("Scores.txt", "a") 
    else: 
     fh = open("Scores.txt", "w+") 
    fh.write(name + "\n") 
    fh.write(str(Score)) 
    fh.close() 
1

私は追加した後にファイルを閉じませんでした。

BestOf.close() 

関連する問題