글쓰는 개발자

파이썬 기초문법 7 - file, format, path 본문

Development/Python

파이썬 기초문법 7 - file, format, path

세가사 2021. 2. 15. 02:40
반응형

1. open

파일을 읽기 위해서는 open 함수로 file을 열어야 한다. 이때 2번째 인자로 r또는 w 또는 a등이 들어가는데 r은 읽기 전용으로 연다는 것이고 w는 쓰기 전용, rw는 읽고 쓰기, a는 추가 하기 등의 의미를 가지고 있다. w로 쓰기를 시작하면 파일을 지우고 새로 쓰는데 반해 a를 사용하면 이미 쓴 내용을 남겨두고 그 뒤에 이어서 쓰는 방식을 가진다.

f = open('output.txt', 'w')
f.write('test line1\n')
f.write('test line2\n')
f.close()

f = open('output.txt', 'r')
for line in f.readlines():
    print(line)
f.close()

'''
test line1
test line2
'''

 

2. format

파이썬에서 문자열을 원하는대로 변경하기 위해서 format은 중요하다. 포멧에는 여러가지 방식이 사용가능하지만 3버전 이후부터는 다음과 같이 {}나 {인덱스}를 넣은 문자열에 .format 함수를 사용해서 값을 넣어주는 방식이 유용하다. {}의 경우 format 함수 내에 파라미터가 순서대로 들어가지만 인덱스를 사용하면 format 내부에 파라미터 값을 중복해서 사용할 수 있는 장점이 있다.

print('str1: {} str2: {}'.format(1, 'test')) # str1: 1 str2: test
print('str1: {0} str2: {0}'.format(1)) # str1: 1 str2: 1

 

3. 파일명과 경로

파일은 디렉터리로 관리된다. 다음 함수를 import 해서 사용하면 현재 파이썬 파일의 실행 위치를 알 수 있다.

import os
cwd = os.getcwd() # /home/python_test/output.txt

 

현재 위치에 output.txt의 절대경로를 알고 싶으면 다음 함수를 사용한다.

os.path.abspath('output.txt') # /home/python_test/output.txt

 

파일 혹은 디렉터리의 존재여부를 확인하기 위해서는 os.path.exists 함수를 호출한다.

os.path.exists('output.txt') # True

 

경로가 있다면 os.path.isdir로 경로가 디렉터리인지 여부를 검사한다.

os.path.isdir('output.txt') # False
os.path.isdir('/home/python_test') # True

 

os.listdir은 해당 디렉터리에 파일이나 디렉터리의 목록을 반환한다.

os.listdir(os.getcwd()) # ['.idea', 'output.txt', 'test.py', 'venv']

 

os.path.join 함수는 첫번째 파라미터의 디렉터리와 두번째 파라미터의 디렉터리 혹은 파일을 가지고 새로운 경로를 생성한다. 윈도우와 리눅스의 파일시스템 구분자가 틀리기 때문에 os.path.join을 사용하면 구분자를 신경쓰지 않고 경로를 생성할 수 있다.

os.path.join('/home/python_test', 'output.txt') # /home/python_test/output.text
반응형