windows 有没有办法从Python内部更改控制台代码页?

ccgok5k5  于 2022-12-14  发布在  Windows
关注(0)|答案(2)|浏览(133)

当我键入
中国药典65001
在命令提示符下,它会改变激活的代码页。我如何在Python内部完成同样的事情呢?例如,每次我运行我的.py程序时,它会自动将代码页更改为65001。

tp5buhyn

tp5buhyn1#

chcp命令使用SetConsoleCPSetConsoleOutputCP Windows API调用来执行其作业。您可以通过ctypes直接调用这些调用:

import ctypes
import ctypes.wintypes

# helper
def _errcheck_bool(retval, func, args):
    if retval:
        return
    raise ctypes.WinError()

# define SetConsoleCP
SetConsoleCP = ctypes.windll.kernel32.SetConsoleCP
SetConsoleCP.argtypes = (ctypes.wintypes.UINT,)
SetConsoleCP.restype = ctypes.wintypes.BOOL
SetConsoleCP.errcheck = _errcheck_bool

# define SetConsoleOutputCP
SetConsoleOutputCP = ctypes.windll.kernel32.SetConsoleOutputCP
SetConsoleOutputCP.argtypes = (ctypes.wintypes.UINT,)
SetConsoleOutputCP.restype = ctypes.wintypes.BOOL
SetConsoleOutputCP.errcheck = _errcheck_bool

# invoke
SetConsoleCP(65001)
SetConsoleOutputCP(65001)
sulc1iza

sulc1iza2#

import os
os.system('chcp 65001')

os.system允许你向操作系统发送任何命令。所以,运行它本质上和手动输入chcp 65001是一样的。更多信息请参见os.system的文档。

相关问题