如何在Python中获取 %APPDATA%
目录的路径?
AppData\Roaming
。import os
print(os.getenv('APPDATA'))
AppData\Local
,请使用。import os
print(os.getenv('LOCALAPPDATA'))
AppData\Local\Temp
,你可以通过以下方式获取它,这样也可以使你的代码在不同平台上都能运行。import tempfile
print(tempfile.gettempdir())
关于区别:
Roaming是一个文件夹,如果您使用漫游配置文件登录到域中的计算机,它将与服务器同步(使您能够在域中的任何计算机上登录并访问您的收藏夹、文档等)。Firefox将其信息存储在此处,因此即使使用漫游配置文件在不同计算机之间也可以拥有相同的书签。
Local是特定于该计算机的文件夹-此处的任何信息都不会与服务器同步。在Windows XP中,此文件夹相当于C:\ Documents and Settings \ User \ Local Settings \ Application Data。
另请参阅this answer。
您可以使用 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')
pathlib
通常更方便,但不幸的是,它没有实现expandvars()
(https://bugs.python.org/issue21301),尽管它确实实现了`expanduser()`(https://docs.python.org/3.10/library/pathlib.html#pathlib.Path.expanduser)。 - djvg虽然问题明确要求关于 Windows 特定的 %APPDATA%
目录,但也许您在这里寻找跨平台解决方案,以获取当前用户的应用程序数据目录,该目录因操作系统而异。
截至 Python 3.11,令人惊讶的是,没有内置函数来查找此目录。但是,有第三方软件包之一是 platformdirs,它提供了检索路径的功能,例如:
user_data_dir
)user_config_dir
)user_cache_dir
)site_data_dir
)site_config_dir
)user_log_dir
)platformdirs
而不是appdirs
,因为后者已被作者弃用(原因:platformdirs
是appdir
更受维护的分支)。 - SolomidHeroimport os
path = os.getenv('APPDATA')
array = os.listdir(path)
print array
我打印了这个页面并感激不尽。
我还尝试在这个设备中配置"%APPDATA%",使用"notepad",但不知道如何实现建议的配置。我也复制了sotoz和Aominé的贡献者。谢谢。
efk14it。
您可以使用名为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
它不仅允许您获取应用程序数据文件夹和日志文件夹,还具有其他功能来管理路径,例如管理配置文件路径。而且它是可定制的。
链接:
AppData\LocalLow
,那么你需要使用..\LocalLow
,因为据我所知并没有相应的环境变量。 - AnnanFay