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

좋은 웹페이지 즐겨찾기