ファイルディレクトリ構造の説明
1. パスの取得
1.1 現在のファイルの絶対パスを取得する
**os.path.abspath()** を使用して、現在のファイルの絶対パスを取得します。
import os
file_path = os.path.abspath(__file__)
print(file_path)
出力:
e:\Python\Path\python_path_test.py
1.2.1 現在のファイルが存在するディレクトリを取得する
**os.path.dirname()** を使用して、現在のファイルが配置されているディレクトリを取得します。
import os
directory_path = os.path.dirname(os.path.abspath(__file__))
print(directory_path)
出力:
e:\Python\Path
1.2.2 現在のファイルが存在するディレクトリの上位ディレクトリを取得する
複数のネストされた **os.path.dirname()** を使用して、現在のファイルが存在するディレクトリの上位レベルのディレクトリを取得します。
import os
parent_directory_path = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
print(parent_directory_path)
出力:
e:\Python
1.3 現在のファイル名を取得する
**os.path.basename()** を使用して、現在のファイルが配置されているディレクトリを取得します。
import os
file_name = os.path.basename(__file__)
print(file_name)
出力:
python_path_test.py
1.4 現在のファイルの参照パスへの相対パスを取得する
**os.path.relpath(file_path,base_path)** を使用して、現在のファイルのベース パスへの相対パスを取得します。
import os
file_path = os.path.abspath(__file__) #获取当前文件的绝对路径
base_path = "E:\Python" #设置基准路径(计算相对路径的起始路径)
relative_path = os.path.relpath(file_path, base_path) #计算从基准路径开始的相对路径
print("Absolute Path: " + file_path)
print("Base Path: " + base_path)
print("Relative Path: " + relative_path)
出力:
Absolute Path: e:\Python\Path\python_path_test.py
Base Path: E:\Python
Relative Path: Path\python_path_test.py
2. パス判定
2.1 パスが存在するかどうかを確認する
**os.path.exists()** を使用して、パスが存在するかどうかを確認します。
import os
path = "./data/data_file.txt"
is_exists = os.path.exists(path)
print(is_exists)
出力:
True
import os
path = "./data/data.txt"
is_exists = os.path.exists(path)
print(is_exists)
出力:
False
2.2 パスが絶対パスかどうかを確認する
**os.path.isabs()** を使用して、パスが絶対パスかどうかを確認します。
import os
path = "E:\Python\Path\data\data_file.txt"
is_exists = os.path.isabs(path)
print(is_exists)
出力:
True
import os
path = "./data/data_file.txt"
is_exists = os.path.isabs(path)
print(is_exists)
出力:
False
2.3 パスがディレクトリであるかどうかを判断する
**os.path.isdir()** を使用して、パスがディレクトリであるかどうかを判断します。
import os
path = "E:\Python\Path\data"
is_exists = os.path.isdir(path)
print(is_exists)
出力:
True
import os
path = "E:\Python\Path\data\data_file.txt"
is_exists = os.path.isdir(path)
print(is_exists)
出力:
False
2.4 パスがファイルかどうかを判断する
**os.path.isfile()** を使用して、パスがファイルかどうかを判断します。
import os
path = "E:\Python\Path\data\data_file.txt"
is_exists = os.path.isfile(path)
print(is_exists)
出力:
True
import os
path = "E:\Python\Path\data"
is_exists = os.path.isfile(path)
print(is_exists)
出力:
False
3. パス処理
3.1 複数のディレクトリ/ファイル名を 1 つのパスにマージ (接続)
**os.path.join(path1, path2, ···)** を使用して、複数のディレクトリ/ファイル名を 1 つのパスにマージ (結合) します。
import os
path1 = "E:\Python"
path2 = "Path\data"
path3 = "data_file.txt"
path = os.path.join(path1, path2, path3)
print(path)
出力:
E:\Python\Path\data\data_file.txt
3.2 パスを、ファイルが配置されているディレクトリのパス (dirname) とファイル名 (basename) に分割します。
**os.path.split()** を使用して、パスをファイルが配置されているディレクトリのパス (dirname) とファイル名 (basename) に分割します。
import os
path = os.path.abspath(__file__)
result = os.path.split(path)
print(result)
出力:
('e:\\Python\\Path', 'python_path_test.py')
3.3 パスをドライブ名 (Windows OS) とファイル パスに分割する
**os.path.splitdrive()** を使用して、パスをドライブ名 (Windows) とファイル パスに分割します。
import os
path = os.path.abspath(__file__)
result = os.path.splitdrive(path)
print(result)
出力:
('e:', '\\Python\\Path\\python_path_test.py')
3.4 パスをファイルパスとファイル拡張子に分割する
**os.path.splitext()** を使用して、パスをファイル パスとファイル拡張子に分割します。
import os
path = os.path.abspath(__file__)
result = os.path.splitext(path)
print(result)
出力:
('e:\\Python\\Path\\python_path_test', '.py')