gpt4 book ai didi

给定元音变音字符时,python os.popen 失败

转载 作者:可可西里 更新时间:2023-11-01 09:26:01 26 4
gpt4 key购买 nike

在 winxp(pro x64 版本 2003,sp2)下,在 cmd 提示符下运行以下命令可以正常工作:

dir C:\testüüüdirectory\

请注意“ü”字符。

但是从 python 2.7.1.4 开始,以下总是返回错误代码 1:

>>> res = os.popen("dir C:\\testüüüdirectory\\")
>>> res.close()
1
>>>

如何让 popen 接受 ü 字符?

最佳答案

这可能是一个编码问题,您的输入与文件系统对输出的期望不完全匹配。首先,您需要告诉 Python 您的输入使用什么编码,然后告诉 Python popen() 调用期望什么编码。

>>> filename = "C:\\testüüüdirectory\\".decode("utf-8")
>>> res = os.popen("dir " + filename.encode("cp1252"))

您可能需要尝试各种编码组合才能获得正确的编码对。 UTF-8、UTF-16 和 cp1252 最有可能适用于 Windows,但您的系统可能设置为使用 another encoding .如果您真的很幸运,os.popen() 甚至可以接受 Unicode 字符串,在这种情况下可以跳过 encode() 步骤。

如果你真的倒霉,character canonicalization可能是个问题。 “ü”在Unicode中有两种可能的表示:U+00FC或U+0075 U+0308;第二个是带有组合分音符的“u”,而第一个是预组合的。如果 Windows 需要一个而 encode() 产生另一个,您可能需要做一些工作才能获得正确的字符串。

关于给定元音变音字符时,python os.popen 失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7678677/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com