%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
これにより、アプリデータフォルダーとログフォルダーを取得できるだけでなく、構成ファイルのパスの管理など、パスを管理するための他の機能があります。そしてそれはカスタマイズ可能です。
リンク: