YYYEJI

[Python] 파일 다루기 본문

Python

[Python] 파일 다루기

YEJI ⍢ 2022. 11. 19. 22:44
728x90

파일 다루기(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()

 

 

 

◡̈

'Python' 카테고리의 다른 글

[Python] Tkinter  (0) 2022.11.21
[Python] 예외처리  (0) 2022.11.19
[MacOS] Conda : command not found Error  (0) 2022.11.09
[Python] 문자열 형식화  (0) 2022.11.04
[Python] Conda에서 package 설치하기  (0) 2022.11.04