반응형
사용자의 최고점
을 텍스트 파일에 쓰는 프로그램이 있습니다. 사용자가 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
반응형
'파이썬' 카테고리의 다른 글
파이썬 Python 3에서 .txt 파일에 쓰는 방법 (0) | 2020.12.28 |
---|---|
파이썬 Scapy로 TCP 플래그 얻기 (0) | 2020.12.28 |
파이썬 kivy에서 버튼 또는 레이블 텍스트 색상 변경 (0) | 2020.12.27 |
파이썬 +에 대해 지원되지 않는 피연산자 유형 : 'int'및 'str' (0) | 2020.12.27 |
파이썬 pandas.Series에 항목을 추가 하시겠습니까? (0) | 2020.12.27 |
댓글