ユーニックス総合研究所

  • home
  • archives
  • python-genzai-no-directory-path

Pythonで現在のディレクトリパスを得る方法

  • 作成日: 2023-07-07
  • 更新日: 2023-12-24
  • カテゴリ: Python

Pythonで現在のディレクトリパスを得る

Pythonで現在のディレクトリパスを得るにはos.getcwd()を使います。

import os  

print(os.getcwd())  
# C:\tmp\work  

os.getcwd()は現在の作業ディレクトリを表す文字列を返します。
一方、os.getcwdb()は現在の作業ディレクトリを表すバイト列を返します。

import os  

print(os.getcwdb())  
# b'C:\tmp\work'  

os.getcwd()os.getcwdb()もCPythonの内部実装ではposix_getcwd関数が使われています。
posix_getcwd関数内ではWindowsの場合はGetCurrentDirectoryW関数が使われてます。
それ以外ではgetcwd関数が使われています。

現在の作業ディレクトリを変更する

現在の作業ディレクトリを変更するにはos.chdir()を使います。

import os  

print(os.getcwd())  
# C:\tmp\work  

os.chdir('..')  

print(os.getcwd())  
# C:\tmp  

os.chdir()は現在の作業ディレクトリを引数のpathに設定します。

os.chdir(path)  

この関数は以下の例外を送出する場合があります。

  • FileNotFoundError
  • PermissionError
  • NotADirectoryError

またos.chdir()pathlib.Pathも許容できます。

import os  
from pathlib import Path  

print(os.getcwd())  
# C:\tmp\work  

path = Path('..')  
os.chdir(path)  

print(os.getcwd())  
# C:\tmp  

現在のディレクトリ、親ディレクトリを参照する

os.curdirで現在のディレクトリ、os.pardirで親ディレクトリを参照できます。

import os  

print(os.curdir)  
# .  

print(os.pardir)  
# ..  

os.path.abspath()を使うと絶対パスに変換できます。

import os  

print(os.path.abspath(os.curdir))  
# C:\tmp\work  

print(os.path.abspath(os.pardir))  
# C:\tmp  

おわりに

今回はPythonで現在のディレクトリパスを取得する方法を解説しました。
なにか参考になれば幸いです。

🦝 < 現在のディレクトリは?

🦝 < ここだよ