分かりやすく、使いやすく。

フルパスから1個上のフォルダのパスを取得する方法

スポンサーリンク
  1. Windows の場合
  2. Windows 以外の場合


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)) 
スポンサーリンク
スポンサーリンク