파이썬/파일처리

파이썬 파일처리

watervin 2022. 1. 11. 15:54

파일입출력


파일쓰기
open(파일경로,모드)

r : 읽기 파일이 없는 경우 예외발생
w : 쓰기, 파일이 없으면 새로 생김
a : 추가
x : 쓰기용으로 여나 기존 파일이 있는 경우 실패
t : text모드로 열기
b :binary모드로 열기

 

f = open("live.txt","wt",encoding="utf-8")
f.write(""" 삶이 그대를 속일지라도
슬퍼어쩌고
우울한 어쩌고
믿으라, 기쁨의 날이 오리니""")
f.close()

 

파일 읽기


f.readline()
f.readlines()

def main():
    try:
        f = open("live.txt","rt",encoding="utf-8")
        text = f.read()
        lines = text.split('\n')
        print(lines)
        for ix,line in enumerate(lines, 1):
            print(f'{ix} : {line}')

        f.close()
    except FileNotFoundError:
        print("파일이 없습니다.")
    finally:
        f.close()


main()
def main():
    try:
        f = open("live.txt","rt",encoding="utf-8")
        text = ""
        line = 1
        while True:
            row = f.readline()
            if not row: break
            text += str(line)+":"+row
            line += 1
        f.close()
        print(text)

    except FileNotFoundError:
        print("파일이 없습니다.")
    finally:
        f.close()

main()
def main():
    f = open("live.txt","rt",encoding="utf-8")
    rows = f.readlines()
    print(rows)

    for row in rows:
        print(row,end = "")
    f.close()


main()

 

입출력 위치

 

seek(위치,기준)

 

내용추가


w모드
기존에 파일이 존재하는 경우 내용을 모두 지우고 다시 작성
a모드
기존에 파일이 존재하는 경우 파일의 끝에 내용을 추가

f = open("live.txt","at",encoding="utf-8")
f.write("\n\n푸쉬퀸 형님의 말씀")
f.close()

 

with ~ as문(컨텍스트 매니저)

open() 함수와 함께 with as문을 사용하면 명시적으로 
close()함수를 호출하지 않아도 파일이 항상 닫힘

 

def main():
    datas = [12,34,56,78,90]
   
   
#리스트의 내용을 data.txt파일로 저장하세요.
# 12,34,56,78,89
    content = [ str(n) for n in datas ]
    print(content)

    content = []
    for n in datas:
        content.append(str(n))
    print(content)

    content = list(map(str,datas))
    print(content)
 
    #리스트 --> '12','34','56'

    content = ",".join(content)
    print(content)

    try:
        with open("data.txt","w") as f:
            f.write(content)
    except Exception as e :
        print(e)
main()


#data.txt 파일을 읽어서.
#datas = [12,34,56,78,90]


def main():
    try :
        with open("data.txt","rt") as f:
            content = f.read()
            print(content)

            datas = content.split(',')
            print(datas)
            datas = list(map(int,datas))
            print(datas)

    except Exception as e:
        print(e)
main()

파일 입출력

pickle모듈

파이썬 자료형 그대로 저장하고, 그래도 로드(복원)
반드시 binary 모드로 오픈해야함
다른 언어와의 호환성은 없음


import pickle

저장하기 
pickle.dump(data,file)

로드하기 
data = pickle.load(file)

'파이썬 > 파일처리' 카테고리의 다른 글

파이썬 파일처리 2  (0) 2022.01.12