Python で現在の作業ディレクトリを取得する方法
Grace Collins
Solutions Engineer · Leapcell

Key Takeaways
os.getcwd()
またはPath.cwd()
を使用して、現在の作業ディレクトリを取得できます。pathlib.Path.cwd()
は、Python でのパス処理において推奨される最新のアプローチです。- 相対ファイルパスを扱う場合、作業ディレクトリを理解することが不可欠です。
Python でファイルシステムを操作する際、現在の作業ディレクトリ(CWD)を知る必要があることがよくあります。これは、Python スクリプトが実行されているフォルダー、または相対ファイル操作の基準となる場所です。Python には、組み込みの os
および pathlib
モジュールを使用してこの情報にアクセスする簡単な方法が用意されています。この記事では、現在の作業ディレクトリを取得するための複数のアプローチについて説明します。
os
モジュールの使用
os
モジュールには、現在の作業ディレクトリを取得するための簡単なメソッド os.getcwd()
が用意されています。
import os cwd = os.getcwd() print("Current Working Directory:", cwd)
これにより、現在の作業ディレクトリへの絶対パスが出力されます。 例:
Current Working Directory: /Users/yourname/projects/myapp
pathlib
モジュールの使用(最新の Python で推奨)
Python 3.4 以降、pathlib
モジュールは、ファイルシステムパスのオブジェクト指向インターフェイスを提供します。 現在、Python でファイルシステムパスを処理する推奨方法です。
from pathlib import Path cwd = Path.cwd() print("Current Working Directory:", cwd)
これにより、同じ結果が得られますが、パス操作を実行する際に柔軟性の高い Path
オブジェクトが返されます。
os.getcwd()
と Path.cwd()
の比較
メソッド | 戻り値の型 | Python バージョン | 注 |
---|---|---|---|
os.getcwd() | str | すべてのバージョン | よりシンプルで、広くサポートされています |
Path.cwd() | Path オブジェクト | 3.4+ | 新しいコードベースに推奨されます |
実践的なヒント
- 作業ディレクトリを変更したい場合は、
os.chdir(path)
を使用できます。 - 相対パスを使用してファイルを開く前に、現在の作業ディレクトリを常に確認してください。
- より安全なパスを構築するには、
.joinpath()
や.resolve()
などのPath
メソッドを使用します。
結論
スクリプトを作成する場合でも、大規模なアプリケーションを構築する場合でも、現在の作業ディレクトリを取得する方法を知っておくことは重要なスキルです。 os.getcwd()
と Path.cwd()
はどちらも有効ですが、pathlib
を使用すると、より堅牢で最新のパス処理機能が提供されます。
FAQs
os.getcwd()
は文字列を返し、Path.cwd()
はパス操作をサポートする Path
オブジェクトを返します。
はい、os.chdir(path)
を使用して作業ディレクトリを変更します。
よりクリーンなオブジェクト指向のパス操作には、最新の Python(3.4 以降)で pathlib
を使用します。
Leapcell は、Python プロジェクトをホストするための最適な選択肢です。
Leapcell は、Web ホスティング、非同期タスク、および Redis 用の次世代サーバーレスプラットフォームです。
多言語サポート
- Node.js、Python、Go、または Rust で開発します。
無制限のプロジェクトを無料でデプロイ
- 使用量に対してのみ支払い — リクエストも請求もありません。
比類のない費用対効果
- アイドル料金なしの従量課金制。
- 例:25 ドルで、平均応答時間 60 ミリ秒で 694 万件のリクエストをサポートします。
合理化された開発者エクスペリエンス
- 簡単なセットアップのための直感的な UI。
- 完全に自動化された CI/CD パイプラインと GitOps の統合。
- 実用的な洞察を得るためのリアルタイムのメトリックとロギング。
簡単なスケーラビリティと高性能
- 簡単な高並行処理に対応する自動スケーリング。
- 運用上のオーバーヘッドはゼロ — 構築に集中するだけです。
ドキュメント で詳細をご覧ください。
X でフォローしてください: @LeapcellHQ