python pythonw_pythonw.exe还是python.exe?

python.exe是用于启动CLI类型脚本的控制台(终端)应用程序。

除非从现有控制台窗口运行,否则python.exe 将打开一个新的控制台窗口。

标准流 sys.stdin,sys.stdout并且sys.stderr被连接到控制台窗口。

从或PowerShell控制台窗口启动时,执行是同步的cmd.exe:请参阅下面的eryksun的第一条评论。

如果创建了新的控制台窗口,它将保持打开状态,直到脚本终止。

从现有控制台窗口中调用时,提示被阻止,直到脚本终止。

pythonw.exe是一个用于启动GUI /无UI脚本的GUI应用。

没有打开控制台窗口。

执行是异步的:

从控制台窗口中调用时,无论脚本是否仍在运行,脚本只会启动,并且提示会立即返回。

标准流 sys.stdin,sys.stdout并且sys.stderr是不可用。

警告:除非你采取额外的步骤,否则可能会带来意想不到的副作用:

未处理的异常会导致脚本静默中止。

在Python 2.x中,仅尝试使用print()会导致这种情况发生(在3.x中,print()完全没有效果)。

为了防止这种情况出现在你的脚本中,并要了解更多信息,请参阅我的答案。

临时的,你可以使用输出重定向:谢谢,@ handle。

pythonw.exe yourScript.pyw 1>stdout.txt 2>stderr.txt

(来自PowerShell :)

cmd /c pythonw.exe yourScript.pyw 1>stdout.txt 2>stderr.txt捕获文件中的 stdout和stderr输出。

如果你确信使用的print()是你的脚本就会失败的唯一原因pythonw.exe,而你不是在标准输出输出,使用从注释兴趣@拉手的命令:

pythonw.exe yourScript.pyw 1>NUL 2>&1

买者:这个输出重定向技术确实不调用工作时*.pyw脚本直接(而不是将脚本文件路径传递到pythonw.exe)。请参阅下面的eryksun的第二条评论及其后续意见。

通过选择正确的文件扩展名,你可以控制默认情况下哪个可执行文件运行脚本(例如从资源管理器打开时):

*.py默认情况下,文件与以下文件关联(调用) python.exe

*.pyw 默认情况下,文件与以下文件关联(调用) pythonw.exe

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值