gpt4 book ai didi

python - subprocess.Popen 带有 unicode 路径

转载 作者:太空狗 更新时间:2023-10-29 21:32:22 24 4
gpt4 key购买 nike

我有一个要打开的 unicode 文件名。以下代码:

cmd = u'cmd /c "C:\\Pok\xe9mon.mp3"'
cmd = cmd.encode('utf-8')
subprocess.Popen(cmd)

返回

>>> 'C:\Pokיmon.mp3' is not recognized as an internal or external command, operable program or batch file.

即使文件确实存在。为什么会这样?

最佳答案

看起来您使用的是 Windows 和 Python 2.X。使用 os.startfile :

>>> import os
>>> os.startfile(u'Pokémon.mp3')

非直观地,让命令 shell 做同样的事情是:

>>> import subprocess
>>> import locale
>>> subprocess.Popen(u'Pokémon.mp3'.encode(locale.getpreferredencoding()),shell=True)

在我的系统上,命令外壳 (cmd.exe) 编码是 cp437,但对于 Windows 程序是 cp1252Popen 需要编码为 cp1252 的 shell 命令。这似乎是一个错误,而且似乎在 Python 3.X 中也已修复:

>>> import subprocess
>>> subprocess.Popen('Pokémon.mp3',shell=True)

关于python - subprocess.Popen 带有 unicode 路径,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9941064/

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