파이썬 파일모드(파일 읽기,쓰기,추가)

반응형
    반응형

    파이썬을 통해 파일을 저장하거나 불러올 때 파일 모드에 알고 있다면 보다 편리하게 파일을 저장,불러오기를 할 수 있습니다. 그전에 파일의 형태인 바이너리 모드와 아스키 모드를 먼저 짚고 넘어가겠습니다.

    아스키 /바이너리 모드

    파일의 형태는 크게 아스키 모드와 바이너리 모드로 되어있습니다. 아스키 모드는 텍스트 편집기(메모장, 한글 등)를 통해 파일의 내용을 확인할 수 있는 파일을 의미하고 그렇지 않은 파일들을 바이너리로 여기시면 됩니다.

    쉽게 말해, 그림파일을 텍스트 편집기에서 텍스트 형태로 불러오면 안 불러지거나 이상한 문자들로 구성되어서 있는 걸 확인할 수 있습니다. 이런 경우 바이너리 파일이라고 생각하면 됩니다.

    바이너리의 형태를 생각하면 파이썬에서는 바이너리 모드로써 불러야 하는 것이 있고 아닌 것이 있음을 알 수 있습니다. 이를 잘 구분해서 파일을 가져와야 합니다. 또한, 파일을 만들때도 어떤 형태로 저장할지 정할 수 있습니다.

    파이썬 파일모드

    파일모드는 읽고(r) 쓰고(w) 추가(a) 로 크게 세가지 나뉩니다. 여기에 바이너리(b)가 추가됩니다. 애초에 파일을 열때에 어떤 모드로 할 것인지 정해놓으면 됩니다. 파이썬 내장함수인 open()함수를 써서 살펴보겠습니다.
    open()함수는 파일경로와 파일모드를 파라미터로 합니다.

    읽기(r) 모드

    파일을 읽기 모드로 불러옵니다. 파일이 없으면 에러가 발생합니다.

    f = open('test.txt','r')

    쓰기(w) 모드

    파일을 쓰기 모드로 불러옵니다. 파일이 없으면 생성합니다.
    주로 파이썬내에서 새로운 파일을 만들 때 사용합니다.
    w를 입력하면 텍스트 파일의 맨 앞쪽에 텍스트 포인터가 배치되어 있습니다. 그래서 기존 파일이 있는 경우 덮어쓰기로 되어 버립니다.

    f = open('test.txt','w')

    추가(a) 모드

    파일을 추가 모드로 불러옵니다. 파일이 없으면 이 역시 생성합니다. 하지만 기존 파일이 있다면 텍스트 포인터가 맨 마지막에 위치해서 w처럼 덮어쓰지 않고 텍스트를 추가할 수 있습니다.

    f = open('test.txt','a')

    + 덧붙이기

    +는 만능키라고 볼 수 있습니다.
    r,w,a에 +를 추가하면 읽기 쓰기 기능을 함께 쓸 수 있습니다.
    예를 들어, r+로 입력하면 읽기 쓰기가 모두 가능합니다.
    w+는 텍스트 포인터가 맨앞으로 가고 읽기 쓰기가 가능합니다.
    a+는 텍스트 포인터가 맨 뒤로 가고 읽기 쓰기가 가능합니다.

    f = open('test.txtx','r+')

    바이너리 모드

    바이너리 모드로 된 것을 저장, 불러오기를 하려면 b를 덧붙입니다. 예를 들어, rb+를 한다면 읽기+쓰기+바이너리가 가능합니다. wb+, ab+ 모두 가능합니다.

    f = open('test.txt','rb+')

    x 모드

    모드를 x로 한다면 파일이 이미 있는 경우 요청실패로 에러가 뜹니다.

    f = open('contents.txt','x')


    w나 a 모드로 무심코 파일을 지울 수 있는데 그러기 전에 확인하는 절차로 하면 유용합니다.
    새로운 파일인 경우 쓰기모드로 불러집니다.
    확실하게 새로운 파일에 쓰려면 x모드를 쓰는 걸 추천합니다.

    마치며

    파이썬 파일모드에 대해 알아보았습니다.
    파이썬에서 open 함수로 파일 저장,불러오기를 할 수 있는 곳이면 어느곳이든 쓸 수 있습니다. 또는 파일모드를 사용할 수 있는 모듈인 경우에도 가능합니다. 저장, 불러오기에 대한 자세한 내용은 관련포스팅에서 살펴보시기 바랍니다.

    관련 포스팅
    [Python]리스트, 딕셔너리 메모장에 저장,불러오기

    댓글

    Designed by JB FACTORY

    ....