Python初心者のパス操作
Python初心者のパス操作
パス操作の基本
Python初心者が最初に直面する課題の一つが、ファイルパスを扱うことです。osモジュールとos.pathサブモジュールは、古くからパス操作に使われてきました。例えば、現在の作業ディレクトリを取得するにはos.getcwd()を呼び出します。
import os
print(os.getcwd()) # 例: /home/user/projects
パス結合はos.path.join()で行います。OSごとの区切り文字(Windowsでは\\、Unix系では/)を意識せずに安全に結合できます。
folder = 'data'
file_name = 'sample.txt'
full_path = os.path.join(folder, file_name)
print(full_path) # 例: data/sample.txt
ディレクトリ作成と存在確認
ディレクトリが存在しない場合に作成するにはos.makedirs()を使います。exist_ok=Trueを指定すると、既に存在していてもエラーになりません。
import os
dir_path = 'output'
os.makedirs(dir_path, exist_ok=True)
print(f'{dir_path} が作成されました') # 例: output が作成されました
ディレクトリやファイルの存在確認はos.path.exists()で行います。存在しない場合はFalseが返ります。
if os.path.exists(dir_path):
print('ディレクトリは存在します')
else:
print('ディレクトリは存在しません')
pathlibでパス結合とファイル名取得
Python 3.4以降、pathlibモジュールが導入され、オブジェクト指向でパス操作が可能になりました。Pathオブジェクトを使うと、コードが読みやすくなります。
from pathlib import Path
folder = Path('logs')
file_name = 'app.log'
full_path = folder / file_name
print(full_path) # 例: logs/app.log
ファイル名だけを取得したい場合は.name属性を使います。拡張子を除いた名前は.stemで取得できます。
print(full_path.name) # app.log
print(full_path.stem) # app
ディレクトリの存在確認は.exists()、ファイルの存在確認は.is_file()、ディレクトリかどうかは.is_dir()で判定できます。
if full_path.exists():
print('パスは存在します')
if full_path.is_file():
print('ファイルです')
if folder.is_dir():
print('フォルダです')
コメント
コメントを投稿