업데이트:

태그: ,

카테고리:



파일 사용법


쓰기모드로 열기

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번 사용해야한다.

댓글남기기