2017-03-06 1 views
0

이 부분에서는 입력 내용과 다른 변수 (점수)를 텍스트 파일에 써야합니다. 프로그램은 입력을 요청하고 (if 문이 제대로 작동 함) 오류없이 실행되지만 텍스트 파일은 비어 있습니다. 이상하게도이 코드를 빈 파이썬 파일에 복사하고 실행하면 오류없이 작동합니다. 여기서 무슨 일이 일어나고있는거야?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() 

가 고정

관련 문제