フルパスから1個上のフォルダのパスを取得する方法
スポンサーリンク
Windows の場合
円マーク=バックスラッシュ(\)で区切り文字を表す windows の場合、 ntpath を使用する。 os.path はスラッシュ(/)を区切り文字として判断する為、正しく処理できない。
フルパスがファイル、フォルダのいずれの場合でも 1 個上のフォルダのフルパスを返す。
python(実行可能なサンプルコード) | |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 | import ntpath # ファイルの場合 my_path = r'c:\temp\abc\test.txt' # c:\temp\abc print(ntpath.dirname(my_path)) # フォルダの場合も、1個上のフォルダを返す my_path = r'c:\temp\abc\efg' # c:\temp\abc print(ntpath.dirname(my_path)) # 但し、最後がバックスラッシュの場合はバックスラッシュの削除のみ my_path = 'c:\\temp\\abc\\efg\\' # c:\temp\abc\efg print(ntpath.dirname(my_path)) |
Windows 以外の場合
python(実行可能なサンプルコード) | |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 | import os # ファイルの場合 my_path = r'/abc/cde/test.txt' # /abc/cde print(os.path.dirname(my_path)) # フォルダの場合も、1個上のフォルダを返す my_path = r'/abc/cde/test' # /abc/cde print(os.path.dirname(my_path)) # 但し、最後がスラッシュの場合はスラッシュの削除のみ my_path = r'/abc/cde/test/' # /abc/cde/test print(os.path.dirname(my_path)) |
スポンサーリンク