Pythonでファイルを操作する際、パスの指定は重要な要素となります。特に、相対パスと絶対パスの理解と使い分けは、エラーを防ぎ、コードの可読性と移植性を向上させるために必要です。
相対パスと絶対パス
- 絶対パスは、ファイルシステムのルート(先頭のディレクトリー)から辿って表記したパスのことです。例えば、MacやLinuxでは、ディレクトリーやファイル毎の切れ目を「/」の記号で表し、先頭のディレクトリから順につなげて表記します。Windowsの場合は、区切り文字を「\(バックスラッシュ」で表し、ルートにはドライブ名を指定する必要があります。
- 相対パスは、カレントディレクトリから辿って表記したパスのことです。相対パスを書く際は、カレントディレクトリは「.」で表し、現在の階層から1つ上の階層を「..」で表記することができます。
Pythonでのパスの扱い
Pythonでは、パスは基本的に文字列として扱えます。以下に、Pythonでのパスの書き方を示します。
path = "./aaa/bbb/ccc.txt"
このパスを使って、テキストファイルの読み書きなどができるようになります。
path = "./aaa/bbb/ccc.txt"
text_file = open(path) # テキストファイルを読み取る
Windowsの場合、区切り文字の「/」はPython側で自動的に「\(バックスラッシュ)」に読み替えられるため、「/」のままパスを表記してかまいません。
osライブラリを使ってパスを操作する
Pythonの標準ライブラリであるosを使うと、パスに対して色々な操作が可能です。以下ではosライブラリでパスを扱う方法をいくつか紹介します。
- カレントディレクトリを取得する「os.getcwd ()」
import os
path = os.getcwd()
print(path)
- 相対パスから絶対パスを取得する「os.path.abspath ()」
path = './file.txt'
abs_path = os.path.abspath(path)
print(abs_path)
以上、Pythonでのファイル操作における相対パスと絶対パスの使い方について説明しました。これらの知識を活用して、Pythonでのファイル操作をより効率的に行いましょう。