我用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.


  1. 我没有将用于Unix仿真环境(Cygwin、MSYS、MSYS2)的Perl版本算作是Perl的Windows版本.
  2. 这些二进制文件只有一位不同.

Python相关问答推荐

如何在PIL、Python中对图像应用彩色面膜?

将轨迹优化问题描述为NLP.如何用Gekko解决这个问题?当前面临异常:@错误:最大方程长度错误

GL pygame无法让缓冲区与vertextPointer和colorPointer一起可靠地工作

如何自动抓取以下CSV

try 与gemini-pro进行多轮聊天时出错

DataFrame groupby函数从列返回数组而不是值

比较2 PD.数组的令人惊讶的结果

如何删除索引过go 的lexsort深度可能会影响性能?' &>

如何获取TFIDF Transformer中的值?

切片包括面具的第一个实例在内的眼镜的最佳方法是什么?

迭代嵌套字典的值

无法在Docker内部运行Python的Matlab SDK模块,但本地没有问题

在www.example.com中使用`package_data`包含不包含__init__. py的非Python文件

我的字符串搜索算法的平均时间复杂度和最坏时间复杂度是多少?

Django admin Csrf令牌未设置

如何排除prefecture_related中查询集为空的实例?

如何删除重复的文字翻拍?

从一个df列提取单词,分配给另一个列

查看pandas字符列是否在字符串列中

仅使用预先计算的排序获取排序元素