본문 바로가기
파이썬 이야기

Part 35. 파이썬 파일 입출력

by 핸들이없는8톤트럭 2022. 8. 7.
반응형

파일 객체

파이썬은 open() 함수로 파일 객체를 받아 손쉽게 파일을 읽고 쓸 수 있습니다. 파일의 경로는 상대 경로와 절대 경로를 모두 사용할 수 있습니다.

--> 상대 경로(relative path) :  파이썬이 실행된 경로를 기준으로 상대적인 경로를 표시한 것

--> 절대 경로(absolute path) : 파이썬의 실행 경로에 관계 없이 절대적인 파일 시스템 상의 경로를 표시한 것

 

파일 객체를 생성할 때에는 다양한 옵션으로 생성할 수 있으며, 파일 객체를 쓴 후에는 close() 메소드로 리소스를 반환해야 합니다.

- w : 텍스트 쓰기 모드(write)

- r : 텍스트 읽기 모드(read)

- a : 텍스트 추가 모드(append, 이어 쓰기 모드) --> 기존 파일 유지 & 글쓰기

- wb,rb,ab : 이진 파일 쓰기/ 읽기/추가 모드(binary)

 

파일의 쓰기

파일 객체에서 제공하는 메소드를 이용하여 파일을 쓸 수 있습니다.

 

#파일 쓰기

f = open('a.txt', 'w') # w : 텍스트 쓰기 모드
f.write('Hello, World! \n')
f.writelines(['1\n','2\n','3\n','4\n']) #리스트를 쓸때에는 writelines 메소드 이용
f.close()

f = open('a.txt', 'a') # a : 텍스트 이어쓰기 모드
f.write('Hello, World! \n')
f.writelines(['1\n','2\n','3\n','4\n']) #리스트를 쓸때에는 writelines 메소드 이용
f.close()

 

 

파일의 읽기

 

f= open('a.txt','r') # r : 텍스트 읽기 모드
data = f.read() # 한 번에 모든 데이터를 가져옴
print(data)
f.close()

f= open('a.txt','r') # r : 텍스트 읽기 모드
line = f.readline()
while line : # 내용이 없으면 Falsy 값이 되는 문자열 특성을 활용
    print(line.rstrip())
    line = f.readline()
f.close()

f= open('a.txt','r')
for line in f.readlines():
    print(line.rstrip())
f.close()

 

문맥 관리자(Context Manager)

with 문을 이용하여 파일 객체를 쉽게 관리할 수 있습니다.

 

with open('a.txt','r') as f : #f는 안에서만 작동, 밖으로 나가면 자동으로 close
    for line in f.readlines():
        print(line.rstrip())

 

반응형

댓글