Python のホーム ディレクトリの取得

Ammar Ali 2023年6月21日
  1. Python で os.path.expanduser モジュールを使用してホーム ディレクトリを取得する
  2. Python で pathlib ライブラリを使用してホーム ディレクトリを取得する
Python のホーム ディレクトリの取得

このチュートリアルでは、Python で os.path.expanduser または pathlib ライブラリを使用してホーム ディレクトリのパスを取得する方法について説明します。

Python で os.path.expanduser モジュールを使用してホーム ディレクトリを取得する

ユーザーのホーム ディレクトリを取得するには、Python で os.path.expanduser を使用できます。 os.path.expanduser() 関数内に文字列文字 ~ を渡す必要があります。これにより、現在ログインしているユーザーのホーム ディレクトリ パスが返されます。

組み込みのパスワード データベースまたは pwd モジュールを使用してホーム ディレクトリのパスを検索し、pwd モジュールはログイン名やパスワードなどのユーザーのアカウントの詳細を提供します。 このモジュールは、Windows や Linux など、すべてのプラットフォームで動作します。

たとえば、os.path.expanduser モジュールを使用してホーム ディレクトリを取得してみましょう。 以下のコードを参照してください。

from os.path import expanduser

home_directory = expanduser("~")
print(home_directory)

出力:

C:\Users\ammar

上記のコードは Windows でテストされており、出力はユーザーとプラットフォームによって異なる場合があります。 現在ログインしていない別のユーザーのホーム ディレクトリのパスを見つけたい場合は、上記のコードの ~ 文字の後にユーザーの名前を追加できます。

ホームディレクトリパスを別のパスに結合するように、os.path.join() 関数を使用して 2つのパスを結合することもできます。 os.path.join() 関数内で結合したいパスを渡すことができます。

たとえば、os.path.join() 関数を使用して、上記のパスを別のパスと結合してみましょう。 以下のコードを参照してください。

from os.path import expanduser, join

home_directory = expanduser("~")
new_directory = join(home_directory, "newPathName")
print(home_directory)
print(new_directory)

出力:

C:\Users\ammar
C:\Users\ammar\newPathName

上記のコードでは、ホーム ディレクトリ パスを別のパスに結合しました。 2つ以上など、複数のパスを結合することもできます。

join() 関数内にバックスラッシュ \ のような特殊文字を追加することはできません。バックスラッシュを一部の文字と組み合わせると、適切な結果が出力されないためです。 たとえば、上記のパスを newPathName\tpath2 に変更すると、\t が文字列内のタブ スペースとして使用されるため、結果にはタブ スペースが含まれます。

join() 関数内に各パスを個別に追加することをお勧めします。 たとえば、上記のパスで別のパスを結合したい場合、それを 3 番目の引数として渡す必要があり、join() 関数はそれを新しいパスの最後に配置し、バックスラッシュが追加されます。 自動的。

以下のコード例を参照してください。

join(path1, path2, path3, ....)

コード内で使用する前に、join() および expanduser() 関数を必ずインポートしてください。 詳細については、os.path.expanduser ライブラリを確認してください。

Python で pathlib ライブラリを使用してホーム ディレクトリを取得する

pathlib ライブラリを使用して、その home() 関数を使用してホーム ディレクトリのパスを取得することもできます。 たとえば、pathlib ライブラリを使用してホーム ディレクトリを見つけてみましょう。

以下のコードを参照してください。

from pathlib import Path

home_directory = str(Path.home())
print(home_directory)

出力:

C:\Users\ammar

上記のコードでは、str 関数を使用して、home() 関数の出力を文字列に変換しました。 これは、Windows や Linux など、すべてのプラットフォームで機能します。 ただし、出力はユーザーとプラットフォームによって異なる場合があります。

pathlib ライブラリの PureWindowsPath().joinPath() 関数を使用して、2つ以上のパスを結合することもできます。 開始パスは PureWindowsPath() 関数内で渡され、新しいパスまたは複数のパスが joinPath() 関数に追加されて、1つの結合されたパスが取得されます。

たとえば、PureWindowsPath().joinPath() 関数を使用して、上記のパスを 2つのパスと結合してみましょう。 以下のコードを参照してください。

from pathlib import Path, PureWindowsPath

home_directory = Path.home()
new_directory = PureWindowsPath(home_directory).joinpath("newPathName", "path2")
print(home_directory)
print(new_directory)

出力:

C:\Users\ammar
C:\Users\ammar\newPathName\path2

上記のコードでは、2つのパスを追加しましたが、好きなだけパスを追加できますが、同じ文字列内のバックスラッシュを避ける必要があります。 これは、バックスラッシュと一部の特殊文字を組み合わせると、\n で新しい行が追加され、\t でタブ スペースが出力に追加されるなどの問題が発生するためです。

joinPath() 関数内に各パスを個別に追加することをお勧めします。

コード内で使用する前に、Path() および PureWindowsPath() 関数を必ずインポートしてください。 詳細については、pathlib ライブラリを確認してください。

著者: Ammar Ali
Ammar Ali avatar Ammar Ali avatar

Hello! I am Ammar Ali, a programmer here to learn from experience, people, and docs, and create interesting and useful programming content. I mostly create content about Python, Matlab, and Microcontrollers like Arduino and PIC.

LinkedIn Facebook

関連記事 - Python Directory