Pythonでユーザーフォルダ(ダウンロード、デスクトップ、ドキュメントなど)のパスを簡単に手に入れる方法

Python

PythonでユーザーフォルダのPathを取得するには?

Pythonでユーザーごとに変わるダウンロードフォルダやデスクトップフォルダ、ドキュメントフォルダのパスを取得したい場合があります。

例えば以下シチュエーションで利用が可能でプログラムの汎用性と使い勝手を大きく向上させることができます。

利用シチュエーション

ダウンロードパスの参照
ブラウザからダウンロードしたファイルを読み込みして処理したい場合などですが、Windowsの場合にはユーザごとにダウンロードのパスが変わってしまいます。これをどの環境でもプログラム変更を行わずにダウンロードパスの参照を行い利用することができます。

デスクトップパスの参照
ユーザーに特定のファイルや教育資料を直接的に配布する場合、デスクトップは最もアクセスしやすい場所の一つです。
このため、プログラムがユーザーのデスクトップパスを認識、教育資料や必要なドキュメントを直接デスクトップに配布する等を組み込むことで、ユーザーのアクセシビリティを高めることができます。

ドキュメントパスの参照
多くのユーザーは、意識的または無意識的に多くのファイルを「ドキュメント」フォルダに保存します。このフォルダのサイズが肥大化するとディスクの容量が圧迫されパフォーマンスの低下を招く可能性があります。不要な大容量ファイルの識別と削除の推奨をプログラムを通じて行い、ユーザーにディスクの容量確保を喚起することが可能になります。

ピクチャパスの参照
スクリーンショットや写真などのイメージファイルは、多くの場合「ピクチャ」フォルダに保存されます。このフォルダからファイルを自動的に収集しサーバーにアップロードするプログラムを作成することにより特にスクリーンショットを多用する作業環境などで作業効率化が図れます。

ユーザーフォルダのパスをプログラムが自動で特定し適切に利用することでアプリケーションの柔軟性とユーザビリティの向上が望めます。

本記事では、簡単な書き方でPythonでユーザーフォルダを取得する関数を紹介します。

ユーザーフォルダのPath取得するサンプルコード

ダウンロード、デスクトップ、ドキュメント、ピクチャ、ビデオのフォルダを取得するサンプルコードを紹介します。

import os

def get_user_download_folder():
    """
        ユーザーのダウンロードフォルダを取得するための関数
    Returns:
        str: フォルダパス
    """
    # ユーザーフォルダのパスを取得
    user_folder = os.path.expanduser("~")
    folder = os.path.join(user_folder, "Downloads")
    
    return folder

def get_user_desktop_folder():
    """
        ユーザーのデスクトップフォルダを取得するための関数
    Returns:
        str: フォルダパス
    """
    # ユーザーフォルダのパスを取得
    user_folder = os.path.expanduser("~")
    folder = os.path.join(user_folder, "Desktop")
    
    return folder

def get_user_document_folder():
    """
        ユーザーのドキュメントフォルダを取得するための関数
    Returns:
        str: フォルダパス
    """
    # ユーザーフォルダのパスを取得
    user_folder = os.path.expanduser("~")
    folder = os.path.join(user_folder, "Documents")
    
    return folder


def get_user_picture_folder():
    """
        ユーザーのピクチャフォルダを取得するための関数
    Returns:
        str: フォルダパス
    """
    # ユーザーフォルダのパスを取得
    user_folder = os.path.expanduser("~")
    folder = os.path.join(user_folder, "Pictures")
    
    return folder

def get_user_video_folder():
    """
        ユーザーのビデオフォルダを取得するための関数
    Returns:
        str: フォルダパス
    """
    # ユーザーフォルダのパスを取得
    user_folder = os.path.expanduser("~")
    folder = os.path.join(user_folder, "Videos")
    
    return folder

“Download”,”Documents”,”pictures”の文字列を変えると別のフォルダも取得できますので試してみてください。

関数の使用例

以下のサンプルコードは、


ダウンロードフォルダを取得する get_user_download_folder関数
デスクトップフォルダを取得する get_user_desktop_folder関数
ドキュメントフォルダを取得する get_user_document_folder関数
ピクチャフォルダを取得する get_user_picture_folder関数
ビデオフォルダを取得する get_user_video_folder関数

の動作を確認するための例です。

folder = get_user_download_folder()
print("ダウンロードフォルダのパス:", folder)

folder = get_user_desktop_folder()
print("デスクトップフォルダのパス:", folder)

folder = get_user_document_folder()
print("ドキュメントフォルダのパス:", folder)

folder = get_user_picture_folder()
print("ピクチャフォルダのパス:", folder)

folder = get_user_video_folder()
print("ビデオフォルダのパス:", folder)

実行結果は以下の通りです。
このサンプルではwkusrというユーザーで処理しているので以下のような結果となります。

ダウンロードフォルダのパス: C:\Users\wkusr\Downloads
デスクトップフォルダのパス: C:\Users\wkusr\Desktop
ドキュメントフォルダのパス: C:\Users\wkusr\Documents
ピクチャフォルダのパス: C:\Users\wkusr\Pictures
ビデオフォルダのパス: C:\Users\wkusr\Videos

最後に

以上がPythonでユーザーフォルダを取得する関数です。

ユーザーフォルダで処理をする機会があればユーザーによりプログラムを変更することなく組み込みが可能となります、用途が多い処理となるため利用検討してみてはいかがでしょうか。

コメント

タイトルとURLをコピーしました