[Python 문법공부] 파일 사용하기
파일 사용법
쓰기모드로 열기
file = open('hello.txt','w')
file.write('Hello World!')
file.close()
open
으로 file이라는 객체가 생성되며, 이 객체의 메서드로
write
, close
와 같은 메서드를 사용한다.
해당 이름을 가진 파일을 쓰기모드로 연다.
해당 py파일이 있는 폴더에 파일을 작성한다.
읽기모드로 열기
file = open('hello.txt', 'r')
s = file.read()
print(s)
file.close()
읽기모드로 파일을 열게되면, file 객체의 read메서드로 내용을 변수에 저장할 수 있다.
그리고 print로 변수를 출력할 수 있다.
자동으로 파일 객체 닫기
파이썬에서는 with as를 사용하면 파일을 사용하고 자동으로 파일 객체를 닫을 수 있다.
with open('hello.txt', 'r) as file:
s = file.read()
print(s)
close()메서드를 사용하지 않아도 파일이 자동으로 닫힌다.
여러 문자열을 파일에 쓰기
반복문으로 문자열 여러 줄을 파일에 쓰기
with open('hello.txt', 'w') as file:
for i in range(3):
file.write('hello, world! {}\n'.format(i))
문자열 여러줄을 입력할 때 주의점은, 개행문자 \n
도 작성해줘야 줄바꿈이 된다는 것이다.
리스트의 문자열을 파일에 쓰기
lines = ['안녕하세요\n', '파이썬은\n', '활용성이 높습니다.\n']
with open('hello.txt','w') as file:
file.writelines(lines)
writelines
는 리스트에 들어있는 문자열을 파일에 작성한다.
마찬가지로 개행문자 \n
을 붙여주어야한다.
파일의 내용을 한 줄씩 리스트로 가져오기
with open('hello.txt', 'r') as file:
lines = file.readlines()
print(lines)
##['안녕하세요\n', '파이썬은\n', '활용성이 높습니다.\n']
readlines()
메서드는 파일의 내용을 한 줄씩 리스트 형태로 가져온다.
파일의 내용을 한 줄씩 읽기
파일의 내용을 한 줄씩 읽기위해서는
readline()
메서드를 사용해야한다.
with open('hello.txt', 'r') as file:
line = None
while line != '':
line = file.readline()
print((line.strip('\n')))
line = None
으로 선언해주는 이유는 변수를 선언해주어야 line과 빈문자열 ‘‘을 비교할 수 있기 때문이다.
line
이라는 변수에 file의 문자열 한 줄씩 할당하고, 이 문자열에서 개행문자를 삭제하고 출력한다.
for 반복문으로 더 간단하게 줄 단위로 읽기
with open('hello.txt', 'r') as file:
for line in file:
print(line.strip('\n'))
for 반복문으로 file 객체를 지정하면 파일의 내용이 한 줄씩 반복문의 객체에 저장된다.
for 반복문으로 file 객체를 지정할 수 있다는 것은 file 객체가 이터레이터라는 것을 의미한다.
이터레이터는 변수 여러개에 언패킹이 가능하다.
file = open('hello.txt','r')
a,b,c = file
#a = '안녕하세요\n'
#b = '파이썬은\n'
#c = '활용성이 높습니다.\n'
파이썬 객체를 파일에 저장하기, 가져오기
피클링, 언피클링
피클링 : 파이썬 객체를 파일에 저장
언피클링 : 파일에서 객체를 읽어옴
피클링:파이썬 객체를 파일에 저장
피클링은 pickle 모듈의 dump 메서드를 사용한다.
import pickle
name = 'james'
age = 17
address '서울시 서초구 반포동'
scroes = {'korean':90, 'english':95, 'mathematics':85, 'science':82}
with open('james.p','wb') as file:
pickle.dump(name, file)
pickle.dump(age, file)
pickle.dump(address, file)
pickle.dump(scores, file)
james.p라는 파일에 객체값이 저장된다.
pickle로 객체를 파일에 저장하기 위해서는 ‘wb’ 모드로 파일을 열어야한다.
언피클링:파일에서 객체 읽어오기
import pickle
with open('james.p','rb') as file:
name = pcikle.load(file)
age = pcikle.load(file)
address = pcikle.load(file)
scores = pcikle.load(file)
print(name)
print(age)
print(address)
print(scores)
객체를 저장할때 dump 메서드를 4번 실행했는데, 똑같이 load메서드도 4번 사용해야한다.
댓글남기기