Chapter 7. 파이썬의 파일 입출력
section13. 파일 입출력의 이해
기본예제1
오늘의 스케줄을 입력하면 그 내용을 모두 파일에 보관하는 프로그램입니다.
스케줄을 입력하지 않고 Enter를 누르면 프로그램은 종료됩니다.
생성되는 파일의 이름은 현재 날짜이고 확장자는 txt입니다. '2020-10-22.txt'와 같은 형식을 갖추고 있습니다.
<실행 예>
오늘의 스케줄을 입력하세요 >>> 오전에 미용실 가기
오늘의 스케줄을 입력하세요 >>> 고등학교 친구와 점심약속
오늘의 스케줄을 입력하세요 >>> 오후 대성기업 관계자 미팅
오늘의 스케줄을 입력하세요 >>> 저녁 가족모임
오늘의 스케줄을 입력하세요 >>> Enter
import time file = open(time.strftime('%Y-%m-%d')+'.txt', 'at') while True: schedule = input('오늘의 스케줄을 입력하세요') if not schedule: break file.write(schedule+'\n') file.close() |
기본예제2
동요 '엄마돼지 아기돼지'의 가사가 저장되어있는 '엄마돼지아기돼지.txt' 파일이 웹하드에
업로드되어 있습니다. 이 파일에서 '꿀'이라는 글자가 몇 번 나오는지 찾는 프로그램입니다.
<실행 예>
꿀은 전체 54번 나타납니다.
file = open('엄마돼지아기돼지.txt', 'rt') line_list = file.readlines() count = 0 for line in line_list: for ch in line: if ch == '꿀': count += 1 print('꿀은 전체 {}번 나타납니다.'.format(count)) |
응용예제1
나라별 수도를 순차적으로 반복시켜서 nation 리스트에 저장해두었습니다.
nation 리스트의 내용을 이용하여 다음과 같은 nation.txt파일을 생성하세요.
nation = ['그리스', '아테네', '독일', '베를린', '러시아', '모스크바', '미국', '워싱턴']
<실행 예>
생성된 nation.txt 파일의 내용은 다음과 같습니다.
그리스 - 아테네
독일 - 베를린
러시아 - 모스크바
미국 - 워싱턴
nation = ['그리스', '아테네', '독일', '베를린', '러시아', '모스크바', '미국', '워싱턴'] file = open('nation.txt', 'wt') file.write(nation[0]+'-'+nation[1]+'\n') file.write(nation[2]+'-'+nation[3]+'\n') file.write(nation[4]+'-'+nation[5]+'\n') file.write(nation[6]+'-'+nation[7]) file.close() |
응용예제2
웹하드에 업로드 되어있는 '연락처.txt'파일을 이용하겠습니다.
'연락처.txt'파일에 저장된 연락처 중에서 전화번호가 011로 시작하는 모든 연락처를 010으로 시작하도록
파일을 수정하세요. 연락처.txt 파일은 다음과 같은 형식으로 데이터가 저장되어 있습니다.
'김나라', '목포시', '010-1111-1111'
'이나라', '서울시', '011-1111-1111'
<실행 예>
총 3건의 011 데이터를 찾았습니다.
모든 데이터를 수정했습니다.
file = open('연락처.txt', 'rt') lines = file.readlines() modify_line = [] count = 0 for line in lines: name, address, phone = line.strip().split(',') if phone.startswith('011'): count += 1 phone = phone.replace('011', '010') modify_line.append(f'{name.strip()}, {address.strip()}, {phone.strip()}\n') file.close() print('총 {}건의 011 데이터를 찾았습니다.'.format(count)) print('모든 데이터를 수정했습니다.') |