No.043 [Python] 경로 문자열에서 파일 이름/폴더 이름/확장자 가져오기
5394 단어 Pythonprogramming
이번에는 파일 이름, 폴더 이름, 확장자를 써서 얻습니다.
I'll write about how to acquire file, folder, and extension names
■os의 경로에 따라 구분자 차이
Difference of Path-delimiter by os
>>> import os
>>>
>>> filepath = "./dir/subdir/filename.ext"
>>>
>>>
>>> # osによるパスの区切り文字の違い
>>>
>>> print(os.sep)
/
>>>
>>> print(os.sep is os.path.sep)
True
>>> # ↑区切り文字は os.sep または os.path.sepで取得、確認できる
■ 파일 이름 가져오기:os.path.basename( )
Acquire a file name
>>> # os.path.basename( ):パス文字列からファイル名取得の場合
>>>
>>> basename = os.path.basename(filepath)
>>>
>>> print(basename)
filename.ext
>>>
>>> print(type(basename))
<class 'str'>
■ 폴더 이름 가져오기:os.path.dirname()
Acquire a folder name
>>> # os.path.dirname:パス文字列からフォルダ名取得の場合
>>>
>>> dirname = os.path.dirname(filepath)
>>>
>>> print(dirname)
./dir/subdir
>>>
>>> print(type(dirname))
<class 'str'>
>>>
>>> # os.path.basename():ファイル直上のフォルダ名のみ取得の場合
>>>
>>> subdirname = os.path.basename(os.path.dirname(filepath))
>>>
>>> print(subdirname)
subdir
■ 파일과 폴더 이름을 동시에 가져옵니다:os.path.split()
Acquire file and folder's names
>>> # os.path.split():ファイル・フォルダ名両方取得の場合
>>>
>>> base_dir_pair = os.path.split(filepath)
>>>
>>> print(base_dir_pair)
('./dir/subdir', 'filename.ext')
>>>
>>> print(type(base_dir_pair))
<class 'tuple'>
>>>
>>> print(os.path.split(filepath)[0] == os.path.dirname(filepath))
True
>>>
>>> print(os.path.split(filepath)[1] == os.path.basename(filepath))
True
>>>
>>> # タプルのアンパック利用による変数代入も可能
>>>
>>> dirname, basename = os.path.split(filepath)
>>>
>>> print(dirname)
./dir/subdir
>>>
>>> print(basename)
filename.ext
■ 경로 문자열이 폴더를 나타낼 때
The case that path strings indicate folders
>>> dirpath_without_sep = '../dir/subdir'
>>>
>>> print(os.path.split(dirpath_without_sep))
('../dir', 'subdir')
>>>
>>> print(os.path.basename(dirpath_without_sep))
subdir
>>>
>>>
>>> # os.path.dirname():最下層のフォルダ名を取得の場合
>>>
>>> dirpath_with_sep = '../dir/subdir/'
>>>
>>> print(os.path.split(dirpath_with_sep))
('../dir/subdir', '')
>>>
>>> print(os.path.basename(os.path.dirname(dirpath_with_sep)))
subdir
■ 확장자 가져오기:os.path.splitext()
Acquire extension
>>> # os.path.splitext():拡張子の取得の場合
>>>
>>> root_ext_pair = os.path.splitext(filepath)
>>>
>>> print(root_ext_pair)
('./dir/subdir/filename', '.ext')
>>>
>>> print(type(root_ext_pair))
<class 'tuple'>
>>>
>>> # +演算子による結合:元のパス文字へ戻る
>>>
>>> root, ext = os.path.splitext(filepath)
>>>
>>> print(path)
./dir/subdir/filename.ext
■확장자의 경로 문자열 생성 수정
How to make path-strings,which changes extension
>>> # 元のパス文字列から拡張子だけを変更したパス文字列を作成する場合
>>> # os.path.splitext()によるタプルの要素と拡張子を結合する
>>>
>>> other_ext_filepath = os.path.splitext(filepath)[0] + '.jpg'
>>>
>>> print(other_ext_filepath)
./dir/subdir/filename.jpg
■ 마침표 없는 확장자 얻기
Acquire extension without period
>>> # ピリオドなしの拡張子を取得の場合、[1:]で2文字目以降を指定
>>>
>>> ext_without_period = os.path.splitext(filepath)[1][1:]
>>>
>>> print(ext_without_period)
ext
■ 파일, 폴더 이름과 결합하여 경로 문자열 만들기:os.path.join()
How to make path-strings with the combiation with file or folder names
>>> # os.path.join()
>>> # os.path.join():ファイル名とフォルダ名を結合し、新たなパス文字列を作成の場合
>>>
>>> path = os.path.join('dir', 'subdir', 'filename.ext')
>>>
>>> print(path)
dir/subdir/filename.ext
■ 같은 폴더의 다른 파일을 만드는 경로 문자열
How to make another file's path-strings within the same folder
>>> # os.path.dirname()とos.path.join()の組み合わせ
>>> # 特定のファイルと同一フォルダの別のファイルのパス文字列を作成の場合
>>>
>>> other_filepath = os.path.join(os.path.dirname(filepath), 'other_file.ext')
>>>
>>> print(other_filepath)
./dir/subdir/other_file.ext
수시로 업데이트되므로 정기적으로 구독해주세요.I'll update my article at all times.
So, please subscribe my articles from now on.
본 보도에 관하여 만약 무슨 요구가 있으면 마음대로 메시지를 남겨 주십시오!
If you have some requests, please leave some messages! by You-Tarin
Reference
이 문제에 관하여(No.043 [Python] 경로 문자열에서 파일 이름/폴더 이름/확장자 가져오기), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/You-Tarin/items/387e293bcb5be6cea565텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)