高校物理158476 views
中学社会667325 views
いろは2990790 views
教育149007 views
ヒストリア285067 views
LaTeX957956 views
MathPython492495 views
小学理科717620 views
高校国語786032 views
中学数学621767 views
Help
Tools

English

Python でホームディレクトリを取得する

ユーザーのホームディレクトリを取得するには os.path.expanduser()pathlib.Path.home() を使う。

import os

home = os.path.expanduser('~')
print(home)  # /home/username(Linux/Mac)または C:\Users\username(Windows)

~ はホームディレクトリを表すシェルの記法で、expanduser() がこれを実際のパスに展開する。

pathlib を使う方法

pathlib では Path.home() クラスメソッドでホームディレクトリを取得できる。

from pathlib import Path

home = Path.home()
print(home)  # /home/username

ホームディレクトリ内のファイルへのパスを構築するには、/ 演算子で結合する。

from pathlib import Path

config_file = Path.home() / '.config' / 'myapp' / 'settings.json'
print(config_file)  # /home/username/.config/myapp/settings.json

~ を含むパスを展開する

パス文字列に ~ が含まれている場合、expanduser() で展開する必要がある。

import os

path = '~/documents/data.txt'
expanded = os.path.expanduser(path)

print(expanded)  # /home/username/documents/data.txt

pathlib でも expanduser() メソッドで同じことができる。

from pathlib import Path

path = Path('~/documents/data.txt')
expanded = path.expanduser()

print(expanded)  # /home/username/documents/data.txt

他のユーザーのホームディレクトリを取得する

~username の形式で他のユーザーのホームディレクトリを取得できる(Unix系のみ)。

import os

other_home = os.path.expanduser('~otheruser')
print(other_home)  # /home/otheruser

環境変数からホームディレクトリを取得する

os.environ を使って環境変数から直接取得することもできる。

import os

# Unix系
home = os.environ.get('HOME')

# Windows
home = os.environ.get('USERPROFILE')

ただし、クロスプラットフォームで動作させるには Path.home()expanduser() を使う方が確実だ。