본문 바로가기

개발/Python

[파이썬] 파일 입출력

파일 열기 모드

파일 열기 모드 설명
r 읽기모드 - 파일 읽기
w 쓰기모드 - 파일에 내용 쓰기 
a 추가모드 - 파일의 마지막에 새로운 내용을 추가하기

파일객체의 멤버 함수

- write : 파일에 내용 쓰기
- read : 파일의 내용 읽기
- readline : 한줄 읽기
- readlines : 여러줄 읽기
- seek : 파일 내 지정된 위치로 옮기기
- tell : 파일 내 마지막 위치 반환
- close : 파일 닫기

file write/read 기본 예제

def fileWrite():
    fp = open("test.txt", "w")
    fp.write("hello") # test.txt파일에 hello 쓰기
    fp.close()

def fileRead():
    fp = open("test.txt", "r")
    rd = fp.read() # hello 전체 출력
    fp.close()
    print(rd)

fileWrite()
fileRead()

flie read 부분 읽기 예제

def fileWrite():
    fp = open("test.txt", "w")
    fp.write("hello")
    fp.close()

def fileRead():
    fp = open("test.txt", "r")
    rd = fp.read(3) # hel까지 3개의 문자만 읽어옴
    fp.close()
    print(rd) # hel출력

fileWrite()
fileRead()

tell() 예제

def fileWrite():
    fp = open("test.txt", "w")
    print(fp.tell()) # test.txt에 아무것도 입력되지 않은 상태로, 0반환
    fp.write("gozz") # 4개의 문자 입력
    print(fp.tell()) # 파일의 마지막 위치 4반환
    fp.write("hello")
    fp.close()

def fileRead():
    fp = open("test.txt", "r")
    rd = fp.read(3) #goz까지 읽어옴
    fp.close()
    print(rd) # goz 출력

fileWrite()
fileRead()

seek() 예제 - 해당 위치에 문자가 있으면 덮어 씌어짐

def fileWrite():
    fp = open("test.txt", "w")
    print(fp.tell()) # 0 출력
    fp.write("gozz12345")
    print(fp.seek(3)) # 3출력 및 goz다음 위치로 포인터 위치
    print(fp.tell()) # 3출력
    fp.write("hello") # goz다음부터 hello를 덮어 씀
    fp.close()

def fileRead():
    fp = open("test.txt", "r")
    rd = fp.read()
    fp.close()
    print(rd) # gozhello5 출력

fileWrite()
fileRead()

read(n) 예제 #1 - 기본

def fileWrite():
    fp = open("test.txt", "w")
    fp.write("gozz12345")
    fp.write("hello")
    fp.close()

def fileRead():
    fp = open("test.txt", "r")
    rd = fp.read(3) # 3개까지만 읽고 포인터 위치도 3으로 이동됨
    print(rd) # goz출력
    rd = fp.read(3) # 이후 3개를 더 읽고 포인터 위치 6으로 변환
    print(rd) # z12 출력
    fp.close()

fileWrite()
fileRead()

read(n) 예제 #2 - n개의 글자씩 파일 끝까지 읽기

def fileWrite():
    fp = open("test.txt", "w")
    fp.write("gozz12345")
    fp.write("helloo")
    fp.close()

def fileRead():
    fp = open("test.txt", "r")
    while True:
        rd = fp.read(3)
        if not rd:
            break
        print(rd)
    fp.close()

fileWrite()
fileRead()

 

파일 한줄씩 읽기 예제 - readline() 

def fileWrite():
    fp = open("test.txt", "w")
    fp.write("gozz\n123\n45")
    fp.write("helloo")
    fp.close()

def fileRead():
    fp = open("test.txt", "r")
    rd = fp.readline()
    print(rd)
    rd = fp.readline()
    print(rd)
    rd = fp.readline()
    print(rd)
    fp.close()

fileWrite()
fileRead()

파일 한줄씩 읽기 예제 - for문 사용

def fileWrite():
    fp = open("test.txt", "w")
    fp.write("gozz\n123\n45")
    fp.write("helloo")
    fp.close()

def fileRead():
    fp = open("test.txt", "r")
    for r in fp:
        print(r)
    fp.close()

fileWrite()
fileRead()

한 줄 읽은 뒤 개행문자 제거 - rstrip()예제

def fileWrite():
    fp = open("test.txt", "w")
    fp.write("gozz\n123\n45")
    fp.write("helloo")
    fp.close()

def fileRead():
    fp = open("test.txt", "r")
    for r in fp:
        print(r.rstrip('\n'))
    fp.close()

fileWrite()
fileRead()

readlines() 예제

def fileWrite():
    fp = open("test.txt", "w")
    fp.write("gozz\n123\n45")
    fp.write("helloo")
    fp.close()

def fileRead():
    fp = open("test.txt", "r")
    rd = fp.readlines()
    print(rd)
    fp.close()

fileWrite()
fileRead()