2
>>> a = os.popen('chcp 65001')
>>> a.read()
'Active code page: 65001\n'
>>> a.close()
>>> a = os.popen('chcp')
>>> a.read()
'Active code page: 437\n'
>>> a.close()

在我将代码页设置为 65001 后,下次我调用 chcp 时,它应该说活动代码页是 65001,而不是 437。我在 windows 命令提示符下尝试了这个,它起作用了。为什么它不能通过 python 代码工作?

4

1 回答 1

3

原因是每次调用时os.popen都会产生一个新进程。尝试打开两个cmd.exe会话并chcp 65001在一个和chcp另一个中运行——这就是您在 Python 代码中所做的事情。

需要注意的一件事:[popen*()][1]从 Python 2.6 开始,所有调用都已贬值。要使用的新模块是subprocess模块。

于 2010-08-26T16:38:11.353 回答