Reference

[python 독학] 9. 상대경로, 절대경로 - 파일 read, write할 때 필수


오늘은 [상대 경로, 절대 경로]입니다.

오늘은 아래와 같은 순서로 배워보겠습니다.

1. 들어가기

2. 상대 경로, 절대 경로로 파일 읽고, 쓰기

3. 요약정리


1. 들어가기

2. 상대 경로, 절대 경로로 파일 읽고, 쓰기

3-1) 작업하는 경로 확인하기

그럼 작업하는 경로(위치)가 어디인지 확인을 해봅니다.

코드

import os
print(os.getcwd())

실행 결과

D:\\101. work\\python\\res

코드 설명

1라인 : 필요한 라이브러리를 import 합니다. 현재 폴더 경로를 확인하기 위해서 os 패키지를 사용합니다.  os패키지에 있는 함수를 사용하므로, 패키지**.**함수명 으로 표현하면 되겠죠?

2라인 : os.getcwd() 를 호출하여 경로를 출력합니다.

cwd = current working directory  현재 작업 중인 디렉터리(폴더)를 의미하고, get = 얻어온다는 의미가 있으니, 현재 작업 중인 폴더를 얻어온다는 의미가 되겠습니다.

3-2) 절대 경로로 파일 읽기

절대 경로로 파일을 읽어보겠습니다.

코드

f = open("D:/101. work/python/res/path_test/test.txt", "r", encoding="utf-8")
data = f.read()
print(data)
f.close()

실행 결과

hello
안녕하세요.

코드 설명

파일을 다룰 때는 파일을 열고 > 읽고 > 열어둔 파일을 닫는 순서로 진행됩니다.

파이썬 내장 함수를 사용하여 파일을 다룹니다.

1라인 : 파일을 열기 위해 파이썬 내장 함수 open()을 사용합니다.  open 함수는 다음과 같이 입력은 "파일 이름"과 "파일 열기 모드"를 받고, 기능은 파일을 엽니다. 결과는 파일 객체를 돌려줍니다.

파일 열기 모드는 다음과 같습니다.

[그림 x-8] 파일 열기 모드 (출처 : python.org)

읽기용으로 파일을 열고 싶다면, 열기 모드를 'r'로 설정하면 됩니다.

더 자세한 사용법을 알고 싶다면, 아래 링크를 확인해주세요.

참고 URL : docs.python.org/3/library/functions.html?highlight=open#open

첫 번째 '파일 이름'에 절대 경로를 주었습니다.

두 번째 '파일 열기 모드'는 읽기 모드로 열기 위해 'r'을 주었습니다.

마지막으로 encoding="utf-8"이 있는데, 한글이 있다면 해당 값으로 설정해 주어야 글자가 깨지지 않습니다. '한글 인코딩'에 대해서는 이 책의 범위를 벗어나는 내용이므로 특별히 설명하지 않겠습니다. 궁금하신 분들은 구글에 '한국어 인코딩'을 검색해보세요.

2라인 : 1라인에서 전달한 결괏값(파일 객체)을 사용하여, 파일 내용을 읽습니다.

3라인 : 읽은 내용물을 출력합니다.

4라인 : 열어둔 파일을 닫기 위해 파일 객체를 사용하여, 파일을 닫습니다.

※ 파일을 닫는 코드를 작성을 해주는 것을 깜빡 잊어서 종종 문제가 생기는 경우가 발생합니다. 그러나 잘 잊죠. 그래서 이를 관리하기 편하게 with문을 사용합니다.  아래와 같이 with문을 사용하면 with 블록을 벗어나는 순간 열린 파일 객체 f가 자동으로 close 되어 굳이 f.close()를 작성하지 않아도 됩니다.

코드

with open("D:/101. work/python/res/path_test/test.txt", "r", encoding="utf-8") as f:
    data = f.read()
    print(data)