python appdata 环境变量中的元音变音问题

2023-11-26

我找不到正确的方法来获取 python 中 appdata 路径的环境变量。

问题是我的用户名包含特殊字符(德语 ae 和 ue)。 我为 Vista 和 Windows 7 使用 PyQt 做了一个解决方法,但它不适用于 XP 系统。

有谁知道这些环境变量的正确编码或此问题的其他解决方案?


正如迈克所说,您可以从以下位置获取系统代码页getfilesystemencoding。此编码用于将 Windows 的本机 Unicode 字符串转换为 Python 使用的所有 C stdio 函数的字节,包括使用字节字符串文件路径的文件系统调用,以及os.environ.

这意味着您将能够读取包含非 ASCII 字符的字符串os.environ并直接将其用作文件路径,无需任何特殊的编码/解码步骤。

不幸的是,如果%APPDATA%变量包含系统代码页中不存在的 Unicode 字符 — 例如,如果在德语 (cp1252) Windows 安装上,您的路径是C:\Documents and Settings\αβγ\Application Data——那么在你有机会使用它们之前,这些角色就已经被破坏了。在这种情况下,使用文件系统编码将得到的字节字符串解码为 Unicode 将无济于事。

您可以在具有以下功能的最新 Python 版本上使用以下函数ctypes扩展,读取 Windows 本机 Unicode 环境变量。

def getEnvironmentVariable(name):
    name= unicode(name) # make sure string argument is unicode
    n= ctypes.windll.kernel32.GetEnvironmentVariableW(name, None, 0)
    if n==0:
        return None
    buf= ctypes.create_unicode_buffer(u'\0'*n)
    ctypes.windll.kernel32.GetEnvironmentVariableW(name, buf, n)
    return buf.value

在 Python 3 中,os.environ字典包含直接从 Windows 获取的 Unicode 字符串,没有代码页编码,因此您不必担心这个问题。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

python appdata 环境变量中的元音变音问题 的相关文章

  • 如何指定聚类的距离函数?

    我想对给定距离的点进行聚类 奇怪的是 似乎 scipy 和 sklearn 聚类方法都不允许指定距离函数 例如 在sklearn cluster AgglomerativeClustering 我唯一可以做的就是输入一个亲和力矩阵 这将非常
  • Tkinter 菜单删除项

    如何删除任何菜单项 例如我想删除 播放 self menubar Menu self root self root config menu self menubar self filemenu2 Menu self menubar self
  • 定义Python源代码编码的正确方法

    PEP 263 http www python org dev peps pep 0263 定义如何声明Python源代码编码 通常 Python 文件的前两行应以以下内容开头 usr bin python coding
  • 如何使用 python 的 http.client 准确读取一个响应块?

    Using http client在 Python 3 3 或任何其他内置 python HTTP 客户端库 中 如何一次读取一个分块 HTTP 响应一个 HTTP 块 我正在扩展现有的测试装置 使用 python 编写 http clie
  • 将 C++ 指针作为参数传递给 Cython 函数

    cdef extern from Foo h cdef cppclass Bar pass cdef class PyClass cdef Bar bar def cinit self Bar b bar b 这总是会给我类似的东西 Can
  • 从 pyspark.sql 中的列表创建数据框

    我完全陷入了有线的境地 现在我有一个清单li li example data map lambda x get labeled prediction w x collect print li type li 输出就像 0 0 59 0 0
  • 将 pandas 剪切操作转换为常规字符串

    我明白了 pandas cut 操作的输出 0 0 20 1 0 20 2 0 20 3 0 20 4 0 20 5 0 20 6 0 20 7 0 20 8 0 20 9 0 20 如何将 0 20 转换为 0 20 我正在这样做 str
  • 如何使用 opencv python 计算乐高积木上的孔数?

    我正在开发我的 python 项目 我需要计算每个乐高积木组件中有多少个孔 我将从输入 json 文件中获取有关需要计算哪个程序集的信息 如下所示 img 001 red 0 blue 2 white 1 grey 1 yellow 1 r
  • python 中的 h2o 框架子集

    如何在 python 中对 h2o 框架进行子集化 如果 x 是一个 df 并且 Origin 是一个变量 那么在 pandas 中我们通常可以通过以下方式进行子集化 x x Origin AAF 但使用 h2o 框架会出现以下错误 H2O
  • 在 Mac OSX 上从 Python 3.6 运行 wine 命令

    我正在尝试用 Python 编写一个打开的脚本wine然后发送代码到wine终端打开一个 exe程序 这 exe程序也是命令驱动的 我可以打开wine 但我无法进一步 import shlex subprocess line usr bin
  • 时间序列数据预处理 - numpy strides 技巧以节省内存

    我正在预处理一个时间序列数据集 将其形状从二维 数据点 特征 更改为三维 数据点 时间窗口 特征 在这样的视角中 时间窗口 有时也称为回顾 指示作为输入变量来预测下一个时间段的先前时间步长 数据点的数量 换句话说 时间窗口是机器学习算法在对
  • 为什么在Python解释器中输入_会返回True? [复制]

    这个问题在这里已经有答案了 我的翻译行为非常奇怪 gt gt gt True gt gt gt type True
  • NumPy 相当于 Keras 函数 utils.to_categorical

    我有一个使用 Keras 进行机器学习的 Python 脚本 我正在构建 X 和 Y 它们分别是特征和标签 标签的构建方式如下 def main depth 10 nclass 101 skip True output True video
  • 为什么这个 if 语句会导致语法错误

    我正在尝试设置一个 elif 语句 如果用户按下 Enter 键 代码将继续 但是我不断遇到语法错误 GTIN 0 while True try GTIN int input input your gtin 8 number if len
  • App Engine 实体到字典

    将 google app engine 实体 在 python 中 复制到字典对象的好方法是什么 我正在使用 db Expando 对象 所有属性均为扩展属性 Thanks 有一个名为foo尝试 foo dict
  • PyQt5:如何使QThread返回数据到主线程

    I am a PyQt 5 4 1 1初学者 我的Python是3 4 3 这是我尝试遵循的many https mayaposch wordpress com 2011 11 01 how to really truly use qthr
  • 高效创建抗锯齿圆形蒙版

    我正在尝试创建抗锯齿 加权而不是布尔 圆形掩模 以制作用于卷积的圆形内核 radius 3 no of pixels to be 1 on either side of the center pixel shall be decimal a
  • 将时间添加到日期时间

    我有一个像这样的日期字符串 然后使用strptime 所以就像这样 my time datetime datetime strptime 07 05 15 m d Y 现在我想添加 23 小时 59 分钟my time 我努力了 timed
  • 如何绘制更大的边界框和仅裁剪边界框文本 Python Opencv

    我正在使用 easyocr 来检测图像中的文本 该方法给出输出边界框 输入图像如下所示 Image 1 Image 2 使用下面的代码获得输出图像 But I want to draw a Single Bigger bounding bo
  • 使用 paramiko 运行 Sudo 命令

    我正在尝试执行sudo使用 python paramiko 在远程计算机上运行命令 我尝试了这段代码 import paramiko ssh paramiko SSHClient ssh set missing host key polic

随机推荐

  • Weinre 不工作,正在尝试调试?

    我想我可能遗漏了一些东西 但我已经使用脚本在我的 Android 平板电脑上安装了 apk 在标题中 我决定尝试在本地运行它http forums adobe com docs DOC 2623 我转到 localhost 8080 并安装
  • 如何在运行时克隆 Control 事件处理程序?

    我想复制一个控件 如按钮 文本框等 但我不知道如何复制事件处理程序方法 例如Click 到新的控件 我现在有以下代码 var btn2 new Button btn2 Text btn1 Text btn2 size btn1 size b
  • 如何在SASS中将字符串拆分为两个数字列表?

    我有一个 SASS SCSS 字符串 其中包含两个列表 以逗号分隔 每个列表都包含数字 以空格分隔 如何将字符串拆分为两个数字列表 SCSS values 10px 20px 30px 20px 30px 40px begin should
  • 如何通过对合并值求和来合并两个数组[重复]

    这个问题在这里已经有答案了 可能的重复 PHP 如何对相同键的数组的值求和 我正在寻找一个array merge 函数不替换值 而是添加它们 例如 这是我正在尝试的代码 echo pre a1 array a gt 2 b gt 0 c g
  • 使用 Zend_Session::rememberMe 持久登录

    我在用着Zend Session管理我的用户会话 我希望在我的应用程序中实现 记住我 选项 以使用户登录状态持续两周左右 我注意到了Zend Session已经有一个名为的内置函数Zend Session rememberMe 但是我不确定
  • 在 App Engine 上使用 Spring AOP 会导致 StackOverflowError

    我们有一个在 App Engine 上运行并使用 Spring 框架的应用程序 最近我们添加了一些基于AOP的新功能 我们决定使用 AspectJ 风格 因此我们添加了
  • 有人可以帮我使用谷歌图表创建一个简单的垂直条形图吗?

    我需要帮助来构建动态图表 我有以下代码 但需要将其更改为垂直条形图而不是水平条形图 这里是示例 您可以将 bhs 更改为 bvs 并根据需要更改缩放比例 尝试这个
  • 如何避免多个
  • 产生双边框
  • 如何避免列表样式出现双边框线 请参阅下面的小提琴以获得清晰的图片 我想要每个盒子的宽度为 1px 但是当它们组合在一起时它们是双倍的 http jsfiddle net awaises 4SLPh 1 HTML ul li li li li
  • 在Java中提取int的数字

    因此 如果我输入一个整数 int num 1 128 我如何能够解析数字并获得 1 2 和 8 并将它们分配给不同的变量 Thanks 执行此操作的低效方法是将整数转换为字符串并迭代字符串字符 更有效的方法是这样的 int n 128 wh
  • Python 删除某些文件扩展名

    我对 Python 相当陌生 但我已经让这段代码可以工作 并且事实上 做了它想要做的事情 但是 我想知道是否有更有效的方法来编码 也许可以提高处理速度 import os glob def scandirs path for current
  • 浮点运算中什么是上溢和下溢

    我觉得我不太明白这个概念overflow and underflow 我问这个问题是为了澄清这一点 我需要从最基本的层面来理解它 让我们使用简化的浮点表示1 byte 1位符号 3位指数和4位尾数 0 000 0000 我们可以存储的最大指
  • iOS 8 Mapview 当前位置不火

    MKMapview当前用户位置未触发iOS 8 以前的iOS 7 iOS 6工作正常 self mapView delegate self self mapView showsUserLocation YES 在这一行中自动调用用户当前位置
  • 以编程方式打开“请勿打扰”

    在iOS 6中 您可以打开 关闭 请勿打扰模式 有可能通过应用程序做到这一点吗 或者至少有一种方法可以查明它是否已设置 我没有确切的答案 但我建议您研究 Apple 拥有的内部设置 URL prefs root 记录如下 http www
  • 为所有服务器端代码调用ConfigureAwait 的最佳实践

    当你有服务器端代码 即一些ApiController 并且你的函数是异步的 所以它们返回Task
  • 如何使用 TSQL 循环遍历文件夹中的所有文件?

    我们有一个 excel 文件文件夹 希望使用 TSQL 将其导入到数据库中 我们有使用导入单个文件的代码OpenRowSet 但需要找到一种方法来循环文件夹中的文件并在每个文件上运行此代码 如何使用 TSQL 来实现这一点 做了一些研究 找
  • 一次写入多个文件

    我有一个包含 196 个列表的文件 我想创建新的 196 个输出文件并将每个列表写入一个新文件中 这样我将拥有 196 个输出文件 每个文件包含 1 个输入数据列表 这是输入文件 128 129 116 118 108 104 137 14
  • 使用 pgp 加密两次有什么好处吗? [关闭]

    Closed 这个问题是无关 目前不接受答案 我是从 更安全 的角度来问的 我可以想象一个场景 其中解密场景需要两个必需的私钥 这可能会使其成为一个有吸引力的模型 我相信除了必须泄露两个不同的私钥之外 它不会增加任何额外的安全性 我认为 如
  • Phonegap 支持 WebRTC 吗?

    我想构建一个增强现实应用程序 我正在考虑使用类似 Wikitude SDK 的东西http www wikitude com developer或使用这个 javascript 库https github com mtschirs js o
  • 如何在 Ipython 笔记本中添加外部 javascript 文件

    我正在尝试将 cdn 托管的 d3 js 添加到我的 Ipython 笔记本中 如下所示 但是 当我第一次加载笔记本时 我收到 添加输出时的 JavaScript 错误 但如果我再次运行单元格 它就会正常工作 难道我做错了什么 提前致谢 您
  • python appdata 环境变量中的元音变音问题

    我找不到正确的方法来获取 python 中 appdata 路径的环境变量 问题是我的用户名包含特殊字符 德语 ae 和 ue 我为 Vista 和 Windows 7 使用 PyQt 做了一个解决方法 但它不适用于 XP 系统 有谁知道这