본문 바로가기
파이썬

파이썬 존재하지 않는 경우 새 파일에 쓰고있는 경우 파일에 추가

by º기록 2020. 12. 28.
반응형

사용자의 최고점 을 텍스트 파일에 쓰는 프로그램이 있습니다. 사용자가 playername 을 선택할 때 파일 이름이 지정됩니다.

특정 사용자 이름을 가진 파일이 이미 존재하는 경우 프로그램이 파일에 추가되어야합니다 (두 개 이상의 최고점 을 볼 수 있음). 그리고 해당 사용자 이름을 가진 파일이 존재하지 않는 경우 (예 : 사용자가 새 사용자 인 경우) 새 파일을 만들고 기록해야합니다.

지금까지 작동하지 않는 관련 코드는 다음과 같습니다.

try: 
    with open(player): #player is the varible storing the username input
        with open(player, 'a') as highscore:
            highscore.write("Username:", player)

except IOError:
    with open(player + ".txt", 'w') as highscore:
        highscore.write("Username:", player)

위의 코드는 존재하지 않는 경우 새 파일을 생성하고 여기에 씁니다. 파일이 있으면 파일을 확인할 때 아무것도 추가되지 않았고 오류가 발생하지 않습니다.

 

해결 방법

 

관심있는 최고 점수가 어디에 저장되어 있는지 정확히 알 수는 없지만 아래 코드는 파일이 있는지 확인하고 원하는 경우 추가하는 데 필요한 코드 여야합니다. 이 방법을 "시도 / 예외"보다 선호합니다.

import os
player = 'bob'

filename = player+'.txt'

if os.path.exists(filename):
    append_write = 'a' # append if already exists
else:
    append_write = 'w' # make a new file if not

highscore = open(filename,append_write)
highscore.write("Username: " + player + '\n')
highscore.close()

 

참조 페이지 https://stackoverflow.com/questions/20432912

 

 

반응형

댓글