상세 컨텐츠

본문 제목

[파이썬(Python)] #5. 파일 입/출력

python

by 빨간눈동자 2021. 8. 17. 10:22

본문

반응형

파일 객체를 생성하기위해서는 open()를 사용한다.  또한 파일 객체를 닫기 위해서는 f.close()를 호출해준다. 

프로그램이 종료되면 자동으로 파일 객체가 소멸되지만, 파일 객체를 닫지 않은 상태에서 다시 open을 하려고 하면 에러가 발생한다. ( 삽질을 줄이기 위해서는 습관적으로 close를 해주는 것이 좋다. 마지막에 자동으로 close해주는  with .. as 구문을 설명하도록 하겠다. ) 

# test.py
f = open("test.txt", 'w')
f.close()

 

파일 객체 = open( 파일 이름, 모드 )

모드에는 아래와 같이 3가지 종류가 존재한다.  

r 읽기 모드
w 쓰기 모드
a 파일 끝에 append 하기 위한 모드
b 바이너리 모드
t 텍스트 모드

 

파일 한줄 읽기 ( readline() )

# test.py
f = open("test.txt", 'r')
line  = f.readline()
print(line)
f.close()

 

readline()을 여러번 호출하면 파일의 다음 줄을 읽어 들일 수 있다. 

# test.py
f = open("test.txt", 'r')
line  = f.readline()
print(line)
line  = f.readline()
print(line)
f.close()

 

파일을 한번에 모두 읽고 싶을 경우 2가지 방법이 존재한다. 

1. for문을 이용하여 readline()을 여러번 호출. ( readline은 파일 끝을 만나면 ""문자를 리턴한다. )

# test.py
f = open("test.txt", 'r')
while True:
    line = f.readline()
    if not line: break
    print(line)
f.close()

 

2. readlines() 사용하기 

# test.py
f = open("test.txt", 'r')
lines = f.readlines()
for line in lines:
    print(line)
f.close()

 

줄 바꿈 문자 (\n) 제거하기 
* strip() 함수를 사용한다. 
# test.py
f = open("test.txt", 'r')
lines = f.readlines()
for line in lines:
    print(line.strip())   <<<<<<<<< here!!
f.close()

 

with as 구문

자동으로 파일을 close 해주는 구문으로 아래와 같은 형태를 지닌다.

with open(파일 경로, 모드) as 파일 객체:
   처리코드

 

위에서 사용한 코드를 with .. as 구문을 사용하도록 변경해보면, 아래와 같다. 

# test.py
with open("test.txt", 'r') as f:
	lines = f.readlines()
	for line in lines:
    	print(line.strip())

 

반응형

'python' 카테고리의 다른 글

[파이썬(Python)] #8. json 파일 다루기  (0) 2021.08.17
[파이썬(Python)] #7. string  (0) 2021.08.17
[파이썬(Python)] #4. 함수  (0) 2021.08.14
[파이썬(Python)] #3. os 모듈  (0) 2021.08.13
[파이썬(Python)] #2. argparse 사용하기  (0) 2021.08.12

관련글 더보기