问题标签 [subprocess]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
python - 在 python 脚本中启动 shell 命令,等待终止并返回脚本
我有一个 python 脚本,它必须为目录中的每个文件启动一个 shell 命令:
这适用于第一个文件,但在“myscript”命令结束后,执行停止并且不会返回到 python 脚本。
我能怎么做?我必须fork()
以前calling os.execlp()
吗?
python - Python, Popen and select - waiting for a process to terminate or a timeout
I run a subprocess using:
This subprocess could either exit immediately with an error on stderr, or keep running. I want to detect either of these conditions - the latter by waiting for several seconds.
I tried this:
but it just returns:
on either condition. What can I do?
python - 使用 pythonw.exe 时 Python subprocess.call() 失败
当我使用 python.exe 运行它时,我有一些 Python 代码可以正常工作,但如果我使用 pythonw.exe 会失败。
我得到的信息是:
但是,如果我不指定 'stdout' 参数, subprocess.call() 可以正常启动。
我可以看到 pythonw.exe 可能正在重定向输出本身,但我不明白为什么我被阻止为新线程指定标准输出。
python - 在 Python 中按顺序执行命令?
我想连续执行多个命令:
即(只是为了说明我的需要):
cmd
(贝壳)
然后
cd dir
和
ls
并读取ls
.
subprocess
对模块有任何想法吗?
更新:
cd dir
并且ls
只是一个例子。我需要运行复杂的命令(按照特定的顺序,没有任何流水线)。事实上,我想要一个子进程 shell 并能够在其上启动许多命令。
python - 在 Python 中对 subprocess.PIPE 进行非阻塞读取
我正在使用subprocess 模块来启动一个子进程并连接到它的输出流(标准输出)。我希望能够在其标准输出上执行非阻塞读取。有没有办法使 .readline 非阻塞或在我调用之前检查流上是否有数据.readline
?我希望它是可移植的,或者至少可以在 Windows 和 Linux 下工作。
这是我现在的做法(.readline
如果没有可用数据,它会阻止):
python - 防止 Python 子进程在 Windows 上传递 fds?
默认情况下,Python 的 subprocess 模块将所有打开的文件描述符传递给它产生的任何子进程。这意味着如果父进程正在侦听端口并被杀死,它无法重新启动并再次开始侦听(即使使用 SO_REUSEADDR),因为子进程仍然拥有该描述符。我无法控制子进程。
子进程 POpen 构造函数确实接受一个 close_fds 参数,它会关闭子进程上的描述符,就像我想要的那样。但是,仅在 Windows 上存在一个限制,如果 stdin/stdout 也被覆盖,则无法使用它,我需要这样做。
有谁知道在 Windows 上解决此问题的方法?
python - 如何使用子流程模块与流程正确交互
我在使用 subprocess 模块重定向另一个程序的 stdio 时遇到问题。仅从标准输出读取会导致挂起,并且 Popen.communicate() 可以工作,但它会在读取/写入后关闭管道。实现这一点的最简单方法是什么?
我在windows上玩这个:
python - 产生期望控制台输入而不阻塞的子进程?
我正在尝试通过调用 cvs.exe 进程从 Python 进行 CVS 登录。当手动调用 cvs.exe 时,它会向控制台打印一条消息,然后等待用户输入密码。
当用 subprocess.Popen 调用它时,我注意到调用阻塞了。代码是
我假设它阻塞是因为它正在等待输入,但我的期望是调用 Popen 会立即返回,然后我可以调用 subprocess.communicate() 来输入实际密码。如何实现这种行为并避免阻塞 Popen?
操作系统:Windows XP
Python:2.6
cvs.exe:1.11
python - subprocess.Popen 错误
我正在以静默模式运行 msi 安装程序并在特定文件中缓存日志。以下是我需要执行的命令。
C:\Program Files\ My Installer\Setup.exe /s /v "/qn /lv %TEMP%\log_silent.log"
我用了:
执行该命令,但它无法识别该操作并给出有关选择错误选项的错误。我已经交叉验证并发现该命令只能以这种方式工作。
python - 在运行时拦截子进程的标准输出
如果这是我的子流程:
这是控制和修改子进程输出的脚本:
为什么要等到进程完成运行readline
?communicate
有没有一种简单的方法来实时传递(和修改)子进程的标准输出?
我在 Windows XP 上。