草庐IT

Subprocess

全部标签

python - 程序退出时消息中的异常被忽略

我最初想在Windows上进行异步流通信。fromasyncioimport*fromasyncio.subprocessimportPIPE,STDOUT,DEVNULLimportsysasyncdeftest(exe):inst=awaitcreate_subprocess_exec(exe,stdin=PIPE,stdout=PIPE,stderr=STDOUT)inst.stdin.close()inst.wait()#forsubprocess'pipesonWindowsdefinitialize_async():ifsys.platform=='win32':set_e

python - 使用 python 获取正在运行的 Windows 应用程序列表

我只想返回那些在Windows任务管理器的“应用程序”类别下列出的应用程序,而不是所有正在运行的进程。下面的脚本返回我不想要的所有进程。如何根据我的要求修改此代码?importsubprocesscmd='WMICPROCESSgetCaption,Commandline,Processid'proc=subprocess.Popen(cmd,shell=True,stdout=subprocess.PIPE)forlineinproc.stdout:print(line) 最佳答案 您可以使用powershell而不是WMIC来获

python - 如果父进程创建一些子进程,则 subprocess.communicate() 在 Windows 8 上挂起

我有一个在Win2003上运行良好的简单代码:proc=subprocess.Popen('',stdout=subprocess.PIPE,stderr=subprocess.PIPE,stdin=subprocess.PIPE)out=proc.communicate()[0]但是在Windows8上这部分;out=proc.communicate()[0],挂起。有人见过这个问题吗?我检查过进程真的终止了(当子进程启动时PID不存在)生成proc.stdout.readlines()也是一个问题,它也挂起。如何检查标准输出是否有EOF?当我停止子进程时,proc.communic

Python:从多个子进程异步打印标准输出

我正在测试一种从Python2.7中的多个子进程打印出标准输出的方法。我设置的是一个主进程,目前生成三个子进程并吐出它们的输出。每个子进程都是一个for循环,它会随机休眠一段时间,当它醒来时,会说“SleptforXseconds”。我看到的问题是打印输出似乎是同步的。假设子进程A休眠1秒,子进程B休眠3秒,子进程C休眠10秒。主进程在尝试查看子进程C是否有内容时停止了整整10秒,即使其他两个进程可能已经休眠并打印了一些内容。这是为了模拟一个子进程是否真的比其他两个进程在更长的时间内没有输出。我需要一个适用于Windows的解决方案。我的代码如下:主进程.pyimportsysimpo

有/没有 cmd.exe 的 Java 子进程命令行执行

我的问题包括几件关于在Windows中从Java执行子进程时使用“cmd.exe”、“/c”的事情我不明白。基本上,我找不到关于何时以及为何需要它们的良好解释。我的具体问题:我有一个用于子流程执行的小框架。一种用途是Java应用程序,它“管理”由ProcessBuilders创建的其他几个JVM。其中一项关键要求是,当子进程卡住或托管应用程序终止时,它必须能够杀死子进程。一方面,问题是这样做:newProcessBuilder("java","...").start();原因:Couldnotfindorloadmainclass...就好像系统变量或目录不同(实际上它们不是)。另一方

python - 有没有一种简单的方法可以从 Python CGI 脚本启动后台任务而无需等待它终止?

在Windows中,就是这样。我认为这个问题的答案是我需要创建一个Windows服务。对于我正在尝试做的事情,这似乎是可笑的重量级。我只是想在这里为我的经理拼凑一个小原型(prototype),我不会负责将其产品化……事实上,它甚至可能永远不会被产品化;它可能只是一些研究人员玩弄的东西。我有一个CGI脚本,它接收一个要上传的文件,将其存储到一个临时位置,然后启动一个后台进程对该文件进行一些严格的数字运算。然后一些Javascript的东西围绕调用其他CGI脚本来检查状态并根据需要更新页面。所有这一切都有效,除了该死的网络服务器不会在子进程运行时关闭连接。我已经做了一些搜索,看来Unix

python - 如何使用计时器关闭带有 python 2.7 的 Windows 8

我正在做一个小项目来学习更多关于python2.7的知识。我制作了一个关机计时器,我设置了所有GUI,我只需要关闭Windows8的命令。cmd命令是:shutdown/txxx。我尝试了以下方法:importsubprocesstime=10subprocess.call(["shutdown.exe","/t","time"])importostime=10os.system("shutdown/t%s"%str(time))两者都不行。感谢任何帮助,我使用的是Windows8,所以我认为Windows7的解决方案是不同的。感谢您的回答,这是我制作的关机计时器:https://gi

python - 将键盘输入传递给 Windows 可执行文件

我正在为一个必须作为Windows可执行文件在C:\管道几乎已建立。但是可执行文件在启动之前需要一些键盘输入。在尝试传递键盘输入之前,它与subprocess.call()一起工作,但我无法获得适用于communicate()的语法。这在下面被注释掉了。我现在已经尝试在SendKeys上添加win32com(见下文),但现在主脚本在可执行文件完成之前继续运行。对我的代码有什么建议吗?我可以记录可执行文件的退出状态以使用while循环只是让主进程休眠直到可执行文件完成吗?#subprocess.call(r"C:\LTR_STRUC\LTR_STRUC_1_1.exe")shell=wi

python - Windows 上带有 --noconsole 的 pyinstaller 根本无法工作

我有一个相当简单的GUI(wxPython)应用程序并且运行良好。我正在使用Windows7。当使用pyinstaller和-w(或--noconsole或--windowed)编译它并运行它时,我可以看到一个控制台窗口一毫秒,然后关闭。GUI应用程序将无法运行。在没有-w的情况下编译将生成一个带有控制台窗口的工作应用程序。我在这里错过了什么? 最佳答案 遇到了同样的问题。使用以下函数代替subprocess.Popen():defpopen(cmd):startupinfo=subprocess.STARTUPINFO()star

python 异常错误子进程文件丢失 - 但是什么文件?

我有一个在python2.7.3(windows)上运行的代码,我尝试在python2.7.8(windows)上运行它并得到以下错误:main:INFO**开始Main**Traceback(mostrecentcalllast):File"C:\wamp\www\prenderer\src\main.py",line82,innuke_process=launch_nuke()File"C:\wamp\www\prenderer\src\main.py",line31,inlaunch_nukequery=subprocess.Popen(r"queryprocess",stdou