Wai*_*ung 21 python winapi redirect command-line windows-7
这是在Windows 7(64位),Python 2.6和Win32 Extensions for Python上运行的.
我有一个简单的脚本,只打印"你好世界".我可以用它启动它python hello.py.在这种情况下,我可以将输出重定向到文件.但是如果我只是hello.py在命令行输入并重定向输出来运行它,我会得到一个例外.
C:> python hello.py
hello world
C:> python hello.py >output
C:> type output
hello world
C:> hello.py
hello world
C:> hello.py >output
close failed in file object destructor:
Error in sys.excepthook:
Original exception was:
Run Code Online (Sandbox Code Playgroud)
我想我升级到Windows 7后首先得到此错误.我记得它应该在XP中运行.我见过有人在谈论这个bug python-Bugs-1012692 | 无法将输入传递给python程序.但那是很久以前的事了.它没有提到任何解决方案.
有没有人经历过这个?有人可以帮忙吗?
S.L*_*ott 17
你在问这个吗?
Windows:在命令行上使用文件类型关联执行Python脚本(即启动"script.py"而不是"python script.py")时,除非设置特定的注册表项,否则重定向可能不起作用.如果从文件关联启动,请参阅知识库文章STDIN/STDOUT重定向可能不起作用.
它在Python自述文件中.也许这个补丁正是你要找的.
更新的答案
Microsoft KB问题(STDIN/STDOUT重定向可能无法工作,如果从文件关联启动)可能正是这个问题.该页面包含有关下载Win2000修补程序的说明,但在最新的Windows版本中可能不需要.在修补程序之后(或者可能没有它,取决于您的Win版本),需要手动注册表编辑.
你应该查看我提供的链接; 无论如何,我总结一下:
HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Policies\ExplorerInheritConsoleHandles并将其设置为1.据说那就是它.
| 归档时间: |
|
| 查看次数: |
16186 次 |
| 最近记录: |