티스토리 뷰
# 운영체제의 힘을 빌려서 스트림을 통해 파일을 입출력
# 입력 : 밖에 있는 파일을 읽어올 때
# 출력 : 밖으로 파일을 생성할 때
# 열기 : 입력 + 출력
1. 파일 열기
파일을 열려면 open 함수를 사용합니다.
f = open("파일명", "모드")
파일명: 열고자 하는 파일의 이름이나 경로 모드: 파일을 어떻게 열 것인지를 지정
- r: 읽기 모드 (기본값)
- w: 쓰기 모드 (파일이 있으면 덮어쓰기)
- a: 추가 모드 (파일의 끝에 내용을 추가)
- b: 바이너리 모드 (텍스트가 아닌 바이너리 데이터를 읽고/쓸 때 사용)
- t: 일반적인 글자를 내보거나 읽어올 때 (생략 가능)
- +: 읽기와 쓰기 모드
2. 파일 쓰기
f = open('example.txt', 'w') # 바이너리 모드로 열리므로 줄바꿈 x
f.write('Hello, Python!\n') # 단일 문자열을 한번에
f.writelines(['Line1\n','Line2\n']) # 문자열 리스트를 반복적으로
f.close() # 이걸 해야지만 파일을 저장하고 닫음, 꼭! 해야함
example.txt 파일이 생성됨
( 내용 )
Hello, Python!
Line1
Line2
f = open('data.txt', 'wt') # 텍스트 모드로 열리므로 줄바꿈 o
for i in range(10):
f.write('파일 열기 테스트: ' + str(i) + '\n')
f.close()
print('data.txt 파일에 쓰기 완료')
data.txt 파일이 생성됨
( 내용 )
파일 열기 테스트: 0
파일 열기 테스트: 1
파일 열기 테스트: 2
파일 열기 테스트: 3
파일 열기 테스트: 4
파일 열기 테스트: 5
파일 열기 테스트: 6
파일 열기 테스트: 7
파일 열기 테스트: 8
파일 열기 테스트: 9
3. with 문
파일을 열고 작업을 수행한 후 자동으로 파일을 닫을 수 있음
( data 폴더에 word.txt 파일 생성하고 단어 입력 )
with open('./data/word.txt', 'w') as f:
while True:
data = input('단어를 입력하세요 : ')
if data.lower() == 'quit':
break
f.write(data + '\n')
4. 파일 읽기
# 1)전체 다 읽기
f = open('example.txt', 'r')
content = f.read() # 10글자 읽을 떈 f.read(10)
print(content)
f.close()
# 2)10글자 읽기 반복
f = open('example.txt', 'r')
while True:
data = f.read(10) # 큰 파일일 경우 메모리, 처리 속도가 효율적
if not data: # 10글자씩 읽다가 더 이상 문자가 없으면 True
break
print(data, end='')
# 3)한 줄씩 읽기 반복
with open('./data/word.txt', 'r') as f:
lines = []
while True:
line = f.readline() # 한줄만 읽음
if not line: # 문자가 없을 때까지 읽어라
break
if len(line.strip()) != 0: # 공백이 없다면
print(line, end='')
lines.append(line.strip())
print(lines)
# 4)readlines()로 읽고 출력
with open('./data/word.txt', 'r') as f:
lines = f.readlines() # 줄 바꿈까지 읽음
print(lines)
# 결과 : ['apple\n', 'banana\n', 'lemon\n']
# 5)\n 없애기
li = []
for i in lines:
li.append(i.replace('\n',''))
print(li)
# 결과 : ['apple', 'banana', 'lemon', 'orange']
5. 예외 처리와 함께 사용하기
- 파일 입출력 중에는 여러 가지 오류가 발생할 수 있음 (예: 파일이 존재하지 않음).
- 이를 위해 try-except 블록을 사용해 오류를 처리할 수 있음
try:
with open('nofile.txt', 'r') as f:
content = f.read()
print(content)
except FileNotFoundError:
print('파일이 존재하지 않습니다')
# 결과 : 파일이 존재하지 않습니다
# 글을 쓰는 것보다 파일을 만들어주는 것이 좋음
'Python' 카테고리의 다른 글
23. 파이썬의 변수 타입 어노테이션 (2) | 2024.03.22 |
---|---|
22. (예제) 영어 단어장 만들기 (0) | 2024.03.21 |
20. 파이썬의 모듈 (0) | 2024.03.21 |
19. (과제3) 주민등록번호 유효성 검사 (0) | 2024.03.21 |
18. 파이썬의 예외처리 (0) | 2024.03.19 |
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
링크
TAG
- 파이썬SQL연동
- 상대위치
- 폼
- EPL정보프로그램
- MySQLdb
- 절대위치
- 출력
- 변수
- FOR
- __call__
- animation적용
- 닷홈
- html이론
- trasform
- DB단어장
- Python
- CSS
- JavaScript
- 줄 간격
- MySQL
- 박스사이징
- 고정위치
- Enclosing
- 클래스문
- HTML
- 솔로의식탁
- DB프로그램만들기
- 리스트
- 셋
- 로또번호생성
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | ||||
4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 | 12 | 13 | 14 | 15 | 16 | 17 |
18 | 19 | 20 | 21 | 22 | 23 | 24 |
25 | 26 | 27 | 28 | 29 | 30 | 31 |
글 보관함