[Python] 파일 다루기
파일 다루기(File handling)를 해보겠습니다.
파일 열기
읽기 형식으로 파일 열기
file = open("f.txt", "rt")
쓰기 형식으로 파일 열기
file = open("f.txt", "wt")
r - read (파일의 내용을 읽을 때 사용)
w - write (파일에 내용을 쓸 때 사용)
a - append (파일에 내용을 덧붙일 때 사용)
x - create (파일 생성, 원래 존재하면 에러 메세지 return)
t - text
b - binary
파일 쓰기
파일에 글을 쓸 때는 "wt"로 파일을 열어야하고 아래와 같이 파일에 작성할 수 있습니다.
file.write("Hi there~\n")
file.write("Welcome to My Blog")
↑↑↑ 한 줄씩 쓰기 ↑↑↑
f = ["Hi there~\n", "Welcome to My Blog"]
file.writelines(f)
↑↑↑ 리스트로 한 번에 쓰기 ↑↑↑
f = ("Hi there~\n", "Welcome to My Blog")
file.writelines(f)
↑↑↑ 튜플에 한 번에 쓰기 ↑↑↑
파일 읽기
파일에 글을 읽을 때는 "rt"로 파일을 열어야하고 아래와 같이 파일을 읽을 수 있습니다.
while True:
f = file.read()
if f == '':
break
print(f)
↑↑↑ 한 글자씩 읽는 방식 ↑↑↑
while True:
f = file.readline()
if f == '':
break
print(f)
↑↑↑ 한 줄씩 읽는 방식 ↑↑↑
마지막으로 파일을 열었으면 꼭 닫아줘야 하는데 close() 함수를 사용합니다.
file.close()
Note) with open("file.txt", "r"):
① with를 사용해서 파일을 open하게 되면 python의 file handler가 ContextManager라는 프로토콜을 사용해서 resource를 확보하고 사용한 후, 안전하게 코드를 반환하는데 도움을 줘서 file 같은 resource 를 사용할 때 좋습니다.
② with를 사용하게 되면 파일 전체를 읽는 것이 아니라 코드 한 줄을 반환하고 그 줄에 대한 수행이 끝나면 그 줄을 메모리에서 삭제를 하게 됩니다. 그렇기에 메모리에 부담이 줄어들게 되는 것입니다.
③ block 을 빠져나올 때는 file 이 자동으로 close 되기 때문에 우리는 편하고 안전하다고 느낄 수 있게 됩니다.
with open("file.txt", "r") as fin:
data = fin.read()
◡̈