subprocess相关内容

使子进程保持活动状态并继续向其发送命令? Python

如果我使用给定的命令在python中生成一个新的subprocess(假设我使用python命令启动python解释器),如何将新数据(通过STDIN)发送到进程? 解决方案 使用标准的子流程模块.您使用subprocess.Popen()启动该过程,该过程将在后台运行(即与您的Python程序同时运行).调用Popen()时,您可能希望将stdin,stdout和stderr参数设置为s ..
发布时间:2020-05-29 01:00:34 Python

如何从Python(2.7)的生成进程中消除Windows控制台?

可能重复: 在pythonw中使用Popen在没有控制台的情况下运行进程 我在Windows上使用python 2.7使用dcraw和PIL自动执行批RAW转换. 问题是,每当我运行dcraw时(每隔几秒钟发生一次),我都会打开一个Windows控制台.如果我以.py格式运行脚本,那么它只会打开主窗口,而不会那么烦人,但我宁愿只显示GUI. 我像这样参与其中: args ..
发布时间:2020-05-29 01:00:32 Python

Python Popen:同时写入stdout和日志文件

我正在使用Popen调用Shell脚本,该脚本不断将其stdout和stderr写入日志文件.有什么方法可以同时(连续地)将日志文件输出到屏幕上,或者可以使Shell脚本同时写入日志文件和stdout? 我基本上想在Python中做类似的事情: cat file 2>&1 | tee -a logfile #"cat file" will be replaced with some s ..
发布时间:2020-05-29 01:00:30 Python

子流程Popen和call有什么区别(我该如何使用它们)?

我想从Python调用一个外部程序.我已经使用Popen()和call()来做到这一点. 两者之间有什么区别? 我的特定目标是从Python运行以下命令.我不确定重定向的工作方式. ./my_script.sh > output 我阅读了文档,它说call()是一种便利功能,或者快捷功能.通过使用call()而不是Popen()会失去能量吗? 解决方案 有两种方法可以 ..
发布时间:2020-05-29 01:00:27 Python

如何指定Popen的工作目录

是否可以在Python的subprocess.Popen()中指定命令的运行目录? 例如: Popen('c:\mytool\tool.exe', workingdir='d:\test\local') 我的Python脚本位于C:\programs\python 是否可以在目录D:\test\local中运行C:\mytool\tool.exe? 如何设置子流程的工作 ..
发布时间:2020-05-29 01:00:23 Python

Popen与可执行文件/路径冲突

我想使用Popen从我的Python脚本中调用ImageMagick的“转换"实用程序,如下所示: Popen(["convert", input_path, "-flop", output_file_path]) (上面的示例只是简单地水平翻转图像) 问题是,当我在Windows中运行该脚本时,它错误地调用了Windows附带的convert.exe实用程序,将FAT分区转换为N ..
发布时间:2020-05-29 01:00:18 Python

Python popen命令.等待命令完成

我有一个脚本,可在其中使用popen shell命令启动. 问题在于脚本不会等到该popen命令完成后才继续运行. om_points = os.popen(command, "w") ..... 如何告诉我的Python脚本等待shell命令完成? 解决方案 根据脚本的工作方式,有两种选择.如果要阻止命令执行,而又不执行任何操作,则可以使用subprocess.call. ..
发布时间:2020-05-29 01:00:14 Python

Popen等待子进程,即使直接子进程已终止

我正在Windows 8/XP上使用Python 2.7. 我有一个程序A,它使用以下代码运行另一个程序B: p = Popen(["B"], stdout=PIPE, stderr=PIPE) stdout, stderr = p.communicate() return B运行批处理脚本C.C是运行时间较长的脚本,即使C尚未完成,我也希望B退出.我已经使用以下代码(在B中)完成 ..
发布时间:2020-05-29 01:00:06 Python

如何使用子流程Popen Python

由于os.popen被subprocess.popen取代,我想知道如何转换 os.popen('swfdump /tmp/filename.swf/ -d') 到subprocess.popen() 我尝试过: subprocess.Popen("swfdump /tmp/filename.swf -d") subprocess.Popen("swfdump %s -d" ..
发布时间:2020-05-29 00:59:59 Python

具有修改后环境的Python子进程/Popen

我认为在环境稍有修改的情况下运行外部命令是很常见的情况.这就是我倾向于这样做的方式: import subprocess, os my_env = os.environ my_env["PATH"] = "/usr/sbin:/sbin:" + my_env["PATH"] subprocess.Popen(my_command, env=my_env) 我有一种直觉,觉得有更好的办法了 ..
发布时间:2020-05-29 00:59:55 Python

围绕写入到多个输出文件的程序的流包装

有一个程序(我不能修改),它创建两个输出文件.我正在尝试编写一个Python包装程序,该程序调用此程序,同时读取两个输出流,合并输出,并打印到stdout(以方便流传输).我该如何避免死锁?下面的以下概念证明可以很好地工作,但是当我将这种方法应用于实际程序时,它将陷入僵局. 概念证明:这是一个虚拟程序bogus.py,它创建两个输出文件,例如我要包装的程序. #!/usr/bin/en ..
发布时间:2020-05-28 00:46:38 Python

将结果从子流程传递到Unix排序

我正在从python调用外部txt文件上的perl脚本,并将输出打印到outfile.但是我想将输出传递给Unix的排序.现在,我不是管道,而是先从perl程序编写输出,然后通过组合下面的代码和此stackoverflow答案来完成此操作. import subprocess import sys import os for file in os.listdir("."): wi ..
发布时间:2020-05-28 00:40:56 Python

Python子流程PIPE阻止

子进程将输出几个字符,我想通过stdin发送一些响应.输出的长度是可预测的,所以我写了这样的代码: p = Popen("myproc", shell = True, stdin = PIPE, stdout = PIPE) p.stdout.read(1) 但是,即使进程已经输出了多个字符,p.stdout.read(1)也不会返回.读取预期长度的字节序列后,如何使它停止阻塞? ..
发布时间:2020-05-28 00:40:54 Python

使用POpen将变量发送到Stdin并将Stdout发送到变量

在shell脚本中,我们具有以下命令: /script1.pl output_file 我想使用模块subprocess在Python中复制以上流. input_file是一个大文件,我无法一次读取整个文件.因此,我想在管道流中传递每行input_string并返回字符串变量output_string,直到整个文件都流过为止. ..
发布时间:2020-05-28 00:39:14 Python