[Python]
파이썬 - 파일 입출력
AI gina
2022. 5. 23. 18:07
파일에 문자열 읽기, 쓰기
import os
#현재 디렉토리 확인
print(os.getcwd())
#경로이동 가능
cd c:\\ai\\pythonstudy
+ 파일에 문자열 쓰기
1. 파일에 문자열을 쓸 때는 open 함수를 이용해서 파일객체를 얻어온다.
2. 얻어온 파일 객체에 write 메소드를 이용해서 문자열을 쓴다.
3. 모든 일이 끝나면 반드시 close 메소드를 이용해서 파일객체를 닫는다.
f = open('myFile.txt', 'w') # (1)'myFile.txt' 파일 쓰기 모드로 열기
f.write('This is my first file.') # (2) 연 파일에 문자열 쓰기
f.close() # (3) 파일 닫기
+ 파일 읽기
파일에 문자열을 쓸 때는 open 함수를 이용해서 파일객체를 얻어온다.
얻어온 파일 객체에 read 메소드를 이용해서 문자열을 쓴다.
모든 일이 끝나면 반드시 close 메소드를 이용해서 파일객체를 닫는다.
f = open('myFile.txt','r')
text = f.read()
f.close()
print(text)
This is my first file.
+ 반복문을 이용해 파일 읽고 쓰기
- 파일에 문자열 한 줄씩 쓰기
f = open('gugudan_2.txt', 'w')
for num in range(1,10):
f.write(f'2 X {num} = {2*num}\n')
f.close()
!type gugudan_2.txt
2 X 1 = 2
2 X 2 = 4
2 X 3 = 6
2 X 4 = 8
2 X 5 = 10
2 X 6 = 12
2 X 7 = 14
2 X 8 = 16
2 X 9 = 18
+ 리스트에 들어있는 문자열 파일에 쓰기
파일객체.writelines(문자열리스트)
lines = ['hi!!!', 'python!!!', 'Django', 'Html', 'CSS']
f = open('lineTest.txt','w')
f.writelines(lines)
f.close()
+ 파일에서 문자열 한 줄씩 읽기
readline()
+ 파일의 내용을 한 줄씩 리스트로 가져오기.
readlines()
f = open('gugudan_2.txt','r')
gg_list = f.readlines()
f.close()
gg_list
['2 X 1 = 2\n',
'2 X 2 = 4\n',
'2 X 3 = 6\n',
'2 X 4 = 8\n',
'2 X 5 = 10\n',
'2 X 6 = 12\n',
'2 X 7 = 14\n',
'2 X 8 = 16\n',
'2 X 9 = 18\n']
+ 자동으로 file 객체를 닫아주는 with
- with 문의 구조
```
with open(파일이름, 파일모드) as 파일객체:
코드
```
with open('hi.txt','w') as f:
f.write('hi!!!! 1')
f.write('hi!!!! 2')
f.write('hi!!!! 3')
f.write('hi!!!! 4')
+ 객체를 파일에 저장하는 pickle 모듈
- 파이썬 객체를 파일에 저장하는 과정을 피클링(pickling)이라고 한다.
- 파일에서 객체를 읽어오는 과정을 언피클링(unpickling)이라고 한다.
+ 파이썬 객체를 파일에 저장하기
pickle 모듈의 dump 메서드를 사용한다
import pickle
name = 'kang'
phone = '010-1111-2222'
address = '경기도 고양시'
with open('kang.txt','wb') as f:
pickle.dump(name, f)
pickle.dump(phone, f)
pickle.dump(address, f)
!type kang.txt
+ 파일에서 파이썬객체 읽기
pickle 모듈의 load를 사용한다.
with open('kang.txt','rb') as f:
name = pickle.load(f)
phone = pickle.load(f)
print(name,phone)
kang 010-1111-2222
파일 모드 종류
r - 읽기모드 (디폴트)
w - 쓰기모드, 파일이 있으면 모든 내용을 삭제
x - 쓰기모드, 파일이 있으면 오류 발생
a - 쓰기모드, 파일이 있으면 뒤에 내용을 추가
+ - 읽기쓰기모드
t - 텍스트 모드, 텍스트 문자 기록에 사용 (디폴트)
b - 바이너리 모드, 바이트단위 데이터 기록에 사용
