Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/oop/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 加载时,让代码更改终端设置_Python_Windows_Cmd_Windows Console - Fatal编程技术网

Python 加载时,让代码更改终端设置

Python 加载时,让代码更改终端设置,python,windows,cmd,windows-console,Python,Windows,Cmd,Windows Console,我有一个程序要求我在运行代码之前输入chcp 65001和set pythoniocodeding=utf-8,否则它无法正确处理字符。有没有办法让代码在打开时自动执行此操作?每次这样做都很痛苦,而且很容易忘记。实际上,您应该能够在Python中这样做,但是假设它的运行时有这个要求,您可以在批处理文件中进行这些设置,然后再使用脚本调用Python。例如,假设此脚本名为pyutf8.bat: @echo off setlocal chcp 65001 set PYTHONIOENCODING=ut

我有一个程序要求我在运行代码之前输入
chcp 65001
set pythoniocodeding=utf-8
,否则它无法正确处理字符。有没有办法让代码在打开时自动执行此操作?每次这样做都很痛苦,而且很容易忘记。

实际上,您应该能够在Python中这样做,但是假设它的运行时有这个要求,您可以在批处理文件中进行这些设置,然后再使用脚本调用Python。例如,假设此脚本名为
pyutf8.bat

@echo off
setlocal
chcp 65001
set PYTHONIOENCODING=utf-8
python %1 %2 %3 %4 %5 %6 %7 %8 %9
然后可以使用以下命令运行脚本:

pyutf8 myscript.py
%1
等是脚本的位置参数。您可以检查是否未提供任何参数,并使用该参数提供默认参数。大概是这样的:

@echo off
setlocal
chcp 65001
set PYTHONIOENCODING=utf-8
if "%1"=="" goto default
python %1 %2 %3 %4 %5 %6 %7 %8 %9
goto :eof
:default
python myscript.py
进一步阅读:


我能否设置批处理,以便它打开我的脚本?我已经设置了一个批处理文件,以便在运行时打开两个脚本,所以这可能吗?当然-我编写了一个通用脚本,但您可以将它们组合在一起。效果很好:)非常感谢。顺便问一下,这是什么语言?@echo off是Windows批处理文件(2000年引入了扩展名,例如
goto:eof
setlocal
)。下面是一个表,显示了DOS、OS/2和NT中可用的内容。请注意,
setlocal
早在80年代就被添加到OS/2中的cmd.exe中,但在NT 4和Windows 2000中进行了扩展。如果您只需要为控制台I/O设置代码页65001,那么您应该改用
win\u unicode\u console
包。宽字符控制台API对于输入和输出都一直正常工作,可以追溯到NT3.1。OTOH,在旧的代码页API中使用代码页65001不允许在任何版本的Windows中输入非ASCII文本,而且在Windows 8之前的版本中输出时存在严重的错误。