파일 확장자를 Python 코드를 통해서 바꾸는 방법
pathlib.Path().stem 이용os.path.splitext 이용split 이용
Python__file__은 수행중인 파일의 상대경로를 출력해주는 기본 설정 전역변수입니다.- 추가내용은 python_file 게시글을 참고해주세요
현재 파일의 기본경로는 test폴더의 test.py파일입니다. (test/test.py)
os.path.basename(__file__)
# 출력값
# >>> test.py
basename은 해당 파일의 이름을 출력해줍니다.제가 제일 선호하는 방법으로 pathlib의 Path 모듈을 이용하는 방법입니다.
Pathlib.Path().stem을 이용하면, 확장자명을 제외한 파일명이 출력됩니다.- 그 후, 원하는 확장자명을
+로 붙이면 됩니다.- 저는 '
test.py'를 'test.log'로 log파일을 만들어 보겠습니다.
import os
from pathlib import Path
print(os.path.basename(__file__))
# 출력값
# >>> test
print(Path(os.path.basename(__file__)).stem)
# 출력값
# >>> test
print(Path(os.path.basename(__file__)).stem + '.log')
# 출력값
# >>> test.log
다음은 os 모듈의 os.path.splitext()를 이용하는 방법입니다.
os.path.splitext()을 이용하면, 파일명과 확장자가 나뉘어 리스트로 출력됩니다.- 그 후, 첫번째 인자만 가져오고, 원하는 확장자명을
+로 붙이면 됩니다.- 저는 '
test.py'를 'test.log'로 log파일을 만들어 보겠습니다.
import os
print(os.path.basename(__file__))
# 출력값
# >>> test
print(os.path.splitext(os.path.basename(__file__)))
# 출력값
# >>> ['test', '.py']
print(os.path.splitext(os.path.basename(__file__))[0]+'.log')
# 출력값
# >>> test.log
다음은 python 기본 함수로 split()을 이용하는 방법입니다.
split()을 이용하면, 원하는 문자를 기준으로 분리해주는 함수입니다.split('.')을 통해서'.'을 기준으로 분리하면 됩니다.- 주의할 점은, 해당 파일명에 이미
.이 포함되어 있는 경우, 오류가 날 가능성이 높아 추천드리는 방법은 아닙니다.
- ex)
test_22.01.01.py의 경우,.으로 분리되는 부분이 많아 오류 발생- 첫번째 인자만 가져오고, 원하는 확장자명을
+로 붙이면 됩니다.- 저는
test.py를test.log로 log파일을 만들어 보겠습니다.
import os
print(os.path.basename(__file__))
# 출력값
# >>> test
print(os.path.basename(__file__).split('.'))
# 출력값
# >>> ['test', 'py']
print(os.path.basename(__file__).split('.')[0]+'.log')
# 출력값
# >>> test.log
감사합니다.