当我键入中国药典65001在命令提示符下,它会改变激活的代码页。我如何在Python内部完成同样的事情呢?例如,每次我运行我的.py程序时,它会自动将代码页更改为65001。
tp5buhyn1#
chcp命令使用SetConsoleCP和SetConsoleOutputCP Windows API调用来执行其作业。您可以通过ctypes直接调用这些调用:
chcp
SetConsoleCP
SetConsoleOutputCP
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)
sulc1iza2#
import os os.system('chcp 65001')
os.system允许你向操作系统发送任何命令。所以,运行它本质上和手动输入chcp 65001是一样的。更多信息请参见os.system的文档。
os.system
chcp 65001
2条答案
按热度按时间tp5buhyn1#
chcp
命令使用SetConsoleCP
和SetConsoleOutputCP
Windows API调用来执行其作业。您可以通过ctypes
直接调用这些调用:sulc1iza2#
os.system
允许你向操作系统发送任何命令。所以,运行它本质上和手动输入chcp 65001
是一样的。更多信息请参见os.system的文档。