파이썬/기본문법

파이썬 파일 읽기 쓰기

코데방 2024. 2. 16.
728x90

파이썬 파일 생성하기, 파일 열기

 

파일을 열면 항상 잘 닫아주는 것이 좋습니다. 세트메뉴라고 생각하시면 됩니다. 

쓰기 모드("w"), 추가모드("a")로 오픈할 경우 없으면 새로 생성됩니다.

 

f = open("file.txt", "w")  # 파일 만들어서 열기
f.close()  # 파일 닫기
파일 열기 모드 설명
r 읽기모드
w 쓰기모드 (기존 내용 지우고 새로 씀)
a 추가모드 (마지막 부분부터 이어 씀)

 

 

 

 

경로를 설정해야하면 아래와 같이 지정해주면 됩니다.

역슬레쉬는 2개를 해야 오류 확률이 줄어듭니다. 

경로 디폴트는 현재 편집하고 있는 ".py" 파일이 있는 위치입니다. 

f = open("E:\\Python\\file.txt", "w")  # 파일 만들어서 열기
f.close()  # 파일 닫기

 

 

 

파이썬 파일에 내용 입력하기

 

혹시 아래와 같이 깨져서 나온다면 인코딩을 추가해주면 됩니다. 

보통 "UTF-8"을 많이 사용합니다.

 

f = open("E:\\Python\\file.txt", "w", encoding="UTF-8")  # 파일 만들어서 열기

content = """
안녕하세요.
코데방입니다.
안녕히 계세요
"""
f.write(content)  # 파일에 입력하기

f.close()  # 파일 닫기

 

 

 

 

 

다시 쓰기모드("w")로 하면 기존 내용은 다 지워지고 새로 내용이 입력됩니다.

 

f = open("E:\\Python\\file.txt", "w", encoding="UTF-8")  # 파일 만들어서 열기

content = """
안녕하세유
"""
f.write(content)  # 파일에 입력하기

f.close()  # 파일 닫기

 

 

 

 

추가모드("a")로 바꾸면 내용이 추가됩니다.

잘 못 했다가는 기존 내용이 다 날아갈 수 있으니 쓰기모드("w")는 신중하게 사용합시다.

 

f = open("E:\\Python\\file.txt", "a", encoding="UTF-8")  # 파일 만들어서 열기

content = """
안녕하세유
"""
f.write(content)  # 파일에 입력하기

f.close()  # 파일 닫기

 

 

 

 

 

파이썬 외부 문서 읽기

 

먼저 "readline()" 함수를 이용한 방식입니다.

한 줄 씩 읽어서 반환해줍니다.

읽어온 라인에 기본적으로 줄바꿈("\n")이 포함되어 있기  때문에 적절히 처리해줍니다. 

 

f = open("E:\\Python\\file.txt", "r", encoding="UTF-8")  # 파일 열기

while True:  # 무한루프 생성
    line = f.readline()  # 한 줄 씩 읽어옴
    if not line: # 더 읽어올 라인이 없을 경우
        break # 탈출
    print(line, end = "") # print() 함수의 기본 줄바꿈을 없애줌

f.close()  # 파일 닫기

 

 

 

 

좀 더 간단하게 "readlines()" 함수로 리스트 형태로 한 번에 가져온 뒤 처리하는 방법도 있습니다.

 

 

f = open("E:\\Python\\file.txt", "r", encoding="UTF-8")  # 파일 열기

lines = f.readlines() # 한번에 다 읽어와서 한 줄 씩 리스트에 넣어줌

for line in lines:
    print(line, end = "")

f.close()  # 파일 닫기

 

 

 

 

그냥 모든 내용을 하나의 문자열(Str) 타입으로 받고 싶으면 간단하게 "read()" 함수를 사용하면 됩니다. 

f = open("E:\\Python\\file.txt", "r", encoding="UTF-8")
str = f.read()  # 한번에 한 문자열에 다 넣어줌
f.close()

print(str)

 

 

 

 

파이썬 파일 닫기 close() 함수 없이 with 사용하기

 

오픈할 때 "with"를 사용하면 블록을 벗어나는 순간 자동으로 닫아주기 때문에 close() 함수를 사용하지 않아도 됩니다. 

 

# with를 사용해 파일 열기, 자동 닫기
with open("E:\\Python\\file.txt", "r", encoding="UTF-8")  as f:

    lines = f.readlines() # 한번에 다 읽어와서 한 줄 씩 리스트에 넣어줌

    for line in lines:
        print(line, end = "")

728x90

댓글

💲 추천 글