파일을 조작하는 것은 중요한 일이다.

 

역시 파이썬에서는 아주 쉽게 파일을 조작할 수 있는 방법을 제공한다.

 

파일 새로만들기

 

아래의 예제는 순식간에 파일을 생성한다.

file = open('HelloFile.txt','w')
file.write('Time is short you need Python.')
file.close()

내장함수(builtins.py)에서 open 메소드를 기본으로 제공하기 때문이다. file을 열고 <class '_io.TextIOWrapper'> 를 리턴한다. 인자에서 'w'는 write 의 약자이다. 쓰기 모드이다.

 

여러번 실행해도 결과는 같다. 만약 파일이 없다면 새로 생성되고 텍스트 내용을 바꿔 저장해도 다시 지우고 생성된다. 파일쓰기가 끝나면 항상 close 해준다. 안 그러면 메모리에 남아서 시스템의 자원을 쓸데없이 차지한다.

 

파일을 다루는 절차는 항상 같다.

 

먼저 파일을 열고 file.open()

 

파일에 조작한 후 file.write() or read()

 

파일 객체를 닫는다. file.close()

파일 읽기

다음은 읽기 모드를 사용해 본다.

file = open('readingknowhow.txt','r')
str = file.read()
print(str)
print(len(str))
file.close()

인터넷에서 다운로드 받은 txt문서로 테스트를 해본다.

파일을 열때 'r' read 읽기 모드를 사용했다. file.read() 로 문자열에 저장하고 콘솔에 출력했다. 파일의 길이(문자열)를 세어보니 6272이다.

 

단순한 스트링이기 때문에 다음의 소스코드로도 같은 결과를 얻을 수 있다. iterable 방식을 사용한다. 텍스트의 공백과 새로운 줄 라인들도 출력 되는 것에 주의한다.

file = open('readingknowhow.txt','r')
str = file.read()

for i in str:
    print(i,end='')
file.close()

 

with as 구문 사용하기

with open('readingknowhow.txt','r') as file:
    str = file.read()
    print(str)

with as 구문을 사용하면 file.close를 하지 않아도 된다. 자동으로 호출된다. 코드가 간결해지고 exception 처리에 유리하다.

 

*텍스트 파일에 구구단 출력하기

with open('newFile.txt','w') as file:
    for i in range(2,10):
        for j in range(1,10):
            file.writelines(f"{i} x {j} = {i*j}\n")
        file.writelines("---------------------------\n")

이 소스코드는 파일에 구구단을 출력한다. 개행문자 \n을 사용하여 양식을 맞춰준다.

 

구구단 파일에 출력

 

파일 끝에 내용 추가하기

 

a (add) 모드로 파일을 열고 쓴다. w 모드로 쓰면 기존의 내용은 다 지워지니 주의한다.

with open('newFile.txt','a') as file:
    file.write('\nend of file')

*파일 한줄씩 읽고 출력하기

with open('readingknowhow.txt','r') as f:

    line = None
    while line != '':
        line = f.readline()
        print(line.strip('\n'))
        input()

input 내장함수를 사용하면 출력하는 속도를 조절할 수 있다. 키보드 한번 입력에 한줄이 넘어간다.

동일한 내용이다. 파일객체도 iterable 이다.

with open('readingknowhow.txt','r') as f:

    for line in f:
        print(line.strip('\n'))
        input()

 

파일을 오픈할 때의 모드는 아래와 같다.

file open mode 파이썬

 

내장함수 open 파이썬

 

Built-in Functions — Python 3.8.5 documentation

Built-in Functions The Python interpreter has a number of functions and types built into it that are always available. They are listed here in alphabetical order. abs(x) Return the absolute value of a number. The argument may be an integer or a floating po

docs.python.org

 

공유하기

facebook twitter kakaoTalk kakaostory naver band