中学理科1626207 views
ヒストリア284143 views
LaTeX957300 views
数学講師2852771 views
世界の国560595 views
高校生物549842 views
英語607877 views
高校倫理1433119 views
小学社会308636 views
小学理科717236 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() を使う方が確実だ。