%APPDATA%
Pythonでディレクトリへのパスを取得するにはどうすればよいですか?
5 に答える
import os
print os.getenv('APPDATA')
os.path.expandvars(path)を使用できます:
環境変数を展開した引数を返します。
$name
またはの形式の部分文字列は、${name}
環境変数名の値に置き換えられます。不正な形式の変数名と存在しない変数への参照は変更されません。Windowsでは、と
%name%
に加えて拡張がサポートされています。$name
${name}
これは、展開された値を他のパスコンポーネントと組み合わせるときに便利です。
例:
from os import path
sendto_dir = path.expandvars(r'%APPDATA%\Microsoft\Windows\SendTo')
dumps_dir = path.expandvars(r'%LOCALAPPDATA%\CrashDumps')
質問はWindows固有のディレクトリについて明確に尋ねていますが、おそらくここで、OSによって異なる現在のユーザーのアプリケーションデータディレクトリを%APPDATA%
取得するためのクロスプラットフォームソリューションを探していることになります。
Python 3.10の時点では、やや意外なことに、このディレクトリを見つけるための組み込み関数はありません。ただし、サードパーティのパッケージがあり、その中で最も人気があるのはappdirsのようです。これは、次のようなパスを取得する関数を提供します。
- ユーザーデータディレクトリ(
user_data_dir
) - user config dir(
user_config_dir
) - ユーザーキャッシュディレクトリ(
user_cache_dir
) - サイトデータディレクトリ(
site_data_dir
) - site config dir(
site_config_dir
) - ユーザーログディレクトリ(
user_log_dir
)
あなたはやってみることができます:
import os
path = os.getenv('APPDATA')
array = os.listdir(path)
print array
と呼ばれるモジュールを使用できますappdata
。これは、アプリのデータフォルダーなど、アプリケーションのさまざまなパスにアクセスするために開発されました。それをインストールします:
pip install appdata
その後、次のように使用できます。
from appdata import AppDataPaths
app_paths = AppDataPaths()
app_paths.app_data_path # for your app data path
app_paths.logs_path # for logs folder path for your application
これにより、アプリデータフォルダーとログフォルダーを取得できるだけでなく、構成ファイルのパスの管理など、パスを管理するための他の機能があります。そしてそれはカスタマイズ可能です。
リンク: