subprocess.Popen(cmd)包含中文怎么办

在windows中通过subprocess调用cmd命令行,命令中包含中文是很令人头痛的事。由于cmd控制台用的是gbk编码,而python用的是utf-8。utf-8的字符串,在gbk编码的控制台上运行,当然会运行不了。假如再要你兼容繁体版的windows,此时更麻烦了。还好python提供了本地化接口

  • 本地化
>>> import locale
>>> locale.getdefaultlocale()
('zh_CN', 'cp936')
  • 示例
import locale
cmd = cmd.encode(locale.getdefaultlocale()[1])
subprocess.Popen(cmd)
posted @ 2017-04-22 12:20  妙音  阅读(1034)  评论(0编辑  收藏  举报