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
ライブラリを確認してください。