Python
python - 파일 입출력
nsh95
2024. 5. 8. 17:18
파일이 열리는 옵션, 모드 입니다. 이 모드에 따라 읽기 용인지 파일을 생성하고 쓸것인지 등이 정해집니다.
'r' : 기본값으로 정해져 있으며 파일을 읽기 위한 옵션 입니다.
'w' : 쓰기모드이며 파일에 내용을 쓸 때 사용하는 옵션 입니다. 만약 이미 파일이 존재하면 커서를 맨 앞으로 돌리면서 뒤에 내용을
다 잘라내기 때문에 내용이 사라질 수 있습니다. 파일이 존재하지 않는다면 새롭게 파일을 생성합니다.
'a' : 쓰기모드이며 파일에 내용을 쓸 때 사용하는 옵션입니다. w 옵션과는 달리 이미 파일이 존재하면 그 파일의 끝에 커서가 존재하고,
그 뒤에 이어쓰기가 가능합니다.
즉, 파일 내용을 잘라내지 않고 이어서 쓸 수 있습니다.
'x' : 파일이 없으면 파일을 생성하고 쓰기모드로 열립니다. 만약 파일이 있으면 에러를 발생시킵니다.
'b' : 바이너리 모드 입니다.
't' : 텍스트 모드 입니다. (기본값)
## 읽기 예제 코드
file=open('test.txt', 'rt') # 파일 읽어들이는 코드
cnt=0
while True:
line=file.readline()
if line == '' :
break
cnt+=1
print(str(cnt)+' '+line)
file.close()
with open('test.txt', 'rt') as file :
lines=file.readlines()
for line in lines :
print(line)
## wt : 기존의 내용위에 덮어쓰기 ★ 원본을 지켜야한다 !!!!!
## at : 기존의 내용뒤에 이어쓰기
with open('test.txt', 'at') as file :
while True :
msg = input('입력 >> ')
if not msg :
break
file.write(msg)
HANGMAN 게임
quiz.txt 파일에 영단어 1개를 저장해주세요.
banana
______ 입력 >> a
_a_a_a 입력 >> c
c는 없습니다!
_a_a_a 입력 >> b
ba_a_a 입력 >> n
banana 정답입니다! :D
quiz.txt 파일에
총 4번만에 정답을 맞추셨습니다. 라고 작성해서 저장해주세요.
예제 코드
answer=''
ans=''
cnt=0
with open('quiz.txt','rt') as file:
answer=file.readline()
ans='_'*len(answer) ## 정답을 _ 로 바꿔주는 코드
while True:
print(ans, end=' ') ## 출력하는 값 뒤에 공백을 넣어주는 코드
if ans == answer:
print('정답입니다 ')
break
a=input('입력 >> ')
cnt+=1 ## 시도할 때마다 횟수 증가
if a in answer:
for i in range(len(answer)):
if a == answer[i]:
ans = ans[:i]+ a + ans[i+1:] # python slicing
else:
print(a+' 문자는 없습니다')
with open('quiz.txt','at') as file:
file.write('총'+str(cnt)+'번만에 정답을 맞추셨습니다')