我用Python编写主应用程序,并将其构建到Windows*.exe文件中,现在需要调用第三方Perl脚本.
我使用,
cmd = "perl fileconverter.pl"
subprocess.call(cmd)
除了cmd窗口之外,一切都运行得很好,该窗口将在调用子进程.call(Cmd)时弹出. 问题是,在这种情况下如何隐藏cmd窗口?
我用Python编写主应用程序,并将其构建到Windows*.exe文件中,现在需要调用第三方Perl脚本.
我使用,
cmd = "perl fileconverter.pl"
subprocess.call(cmd)
除了cmd窗口之外,一切都运行得很好,该窗口将在调用子进程.call(Cmd)时弹出. 问题是,在这种情况下如何隐藏cmd窗口?
你可以用wperl
代替perl
.
如果您的程序在控制台中运行,则perl
应该重用相同的控制台.
>perl -e"system 'perl -Esay+123'"
123
(我没有安装Python,但无论启动perl
的是什么,这一点都适用.)
但也许在没有控制台的情况下,运行的是Python.然后,perl
将自己创建一个控制台.
另一个答案向您展示了在使用Python时如何隐藏这个控制台,这是一个很好的解决方案.但是,您还可以使用一个简单的Perl特定选项.
草莓Perl(我认为ActivePerl,可能还有所有版本的Perl for Windows)不仅提供perl.exe
个,而且提供wperl.exe
个.[1]后者与前者相同,只是它使用隐藏的控制台.[2]所以您所需要做的就是将perl
更改为wperl
.