[파이썬] 파일 열기, 파일 읽기, 파일 쓰기

미음제

·

2021. 4. 1. 20:28

OS 모듈

Operating System의 약자로

운영체제에서 제공하는

기능을 파이썬에서 수행할 수 있도록

해주는 모듈이다.

 

파일 목록을 알아내거나

디렉토리를 생성하고자 할 때

os 모듈을 사용한다.

 

사용하기 위해서는

os모듈을 import 해주면 된다.

 

import os

 

 

파일을 다루기 위해

현재의 경로를 알아낸다.

경로를 알아내기 위해

os 모듈의

getcwd함수를 사용한다.

>>> os.getcwd()

현재 경로를 알아냈고,

현재 경로의 모든

파일을 확인하기 위해

listdir() 함수를 사용한다.

>>> os.listdir()

 

 

파일 열기

파일을 읽거나 쓰기 위해서는

파일을 읽어야 한다.

파일을 여는 것의 의미는

파일을 읽고, 쓰기 위한 준비를 하는 것이다.

 

open() 함수를 이용해

파일을 열 수 있다.

파일핸들 = open('파일명')

 

>>> f = open('mbox.txt')
>>> print(f)

mbox.txt 파일을 읽고

출력해보면

다음과 같은 결과를 얻을 수 있다.

 

 

파일 읽기

>>> f = open('mbox.txt')
>>> cnt = 0
>>> for line in f:
...  cnt += 1
...
>>> print('Line Count : ', cnt)

파일 핸들 f는 mbox.txt에 대한

핸들이다.

 

for문은 파일 핸들이 가리키는

파일의 각 행마다

'\n'를 읽어 들여

cnt를 증가시킨다

 

for문을 끝내면

mbox.txt의 총 line의 수를 확인할 수 있다.

 

for문에서 cnt를 증가시키는 것을

print(line)으로 변경하면

mbox.txt 파일의

내용을 출력하게 된다.

 

 

파일 핸들에 속해있는

read() 함수를 이용해

파일 전체 내용을 문자열 변수에

담아서 사용할 수 있다.

 

>>> f = open('mbox.txt')
>>> inp = f.read()
>>> print(len(inp))

>>> print(inp[:10])

파일 핸들을 통해

mbox.txt를 다루고,

inp라는 변수에

read()함수를 통해

mbox.txt를 읽어온다.

 

inp의 길이를 출력하면

mbox.txt의 총길이를 출력하고

print(inp)를 하면

읽어 들인 mbox.txt를 모두 출력하게 된다.

 

print(inp[:10])를 통해

처음 10글자만 출력하는 식으로

출력할 수 도 있다.

 

read() 함수는

함수를 호출할 때마다

리소스가 소비되므로

호출 결과를 변수로 저장해주어야 한다.

 

>>> f = open('words.txt')
>>> inp = f.read()
>>> print(len(inp))

>>> inp = f.read()
>>> print(len(inp))

 

 

파일 쓰기

파일 쓰기를 하러면

open() 메소드에 'w' 매개변수를 주어

쓰기용으로 파일을 열고, 파일 핸들을 통해

파일을 쓸 준비를 한다

 

파일핸들 = open(파일이름, 'w')

>>> f = open('testw.txt','w')
>>> line = 'Welcome'
>>> f.write(line)

>>> f.close()
>>> os.listdir()

testw.txt라는 파일을 

쓰기용 파일로 열어준다.

 

그리고 line이라는 변수에

Welcome을 저장하고

파일 핸들을 통해

testw.txt 파일에

line을 입력해주고

닫아준다.

 

그리고 디렉터리의

파일을 검사해보면

testw.txt 파일이 추가된 것을 볼 수 있다.

작성한 파일을 확인해보면

다음과 같다.

>>> f = open('testw.txt')
>>> re = f.read()
>>> print(re)

 

 

반응형