75

如何%APPDATA%在 Python 中获取目录的路径?

4

5 回答 5

134
import os
print os.getenv('APPDATA')
于 2012-11-01T19:52:40.080 回答
30

您可以使用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')
于 2018-09-27T10:01:14.713 回答
10

尽管该问题明确询问了 Windows 特定%APPDATA%目录,但也许您最终在这里寻找一种跨平台解决方案来获取当前用户的应用程序数据目录,该目录因操作系统而异。

从 Python 3.10 开始,有点令人惊讶的是,没有找到这个目录的内置函数。但是,有第三方包,其中最受欢迎的似乎是appdirs,它提供了检索路径的功能,例如:

  • 用户数据目录 ( user_data_dir)
  • 用户配置目录 ( user_config_dir)
  • 用户缓存目录 ( user_cache_dir)
  • 站点数据目录 ( site_data_dir)
  • 站点配置目录 ( site_config_dir)
  • 用户日志目录 ( user_log_dir)
于 2021-02-12T10:15:28.133 回答
1

您可以尝试这样做:

import os
path = os.getenv('APPDATA')
array = os.listdir(path)
print array
于 2017-12-02T18:40:19.140 回答
0

您可以使用名为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

它不仅允许获取应用程序数据文件夹和日志文件夹,还具有其他管理路径的功能,例如管理配置文件路径。它是可定制的。

链接:

  1. 阅读文档- 文档。
  2. GitHub - 源代码。
  3. PyPI - 包管理器 (pip)。
于 2021-12-19T12:53:39.827 回答