subprocess相关内容
我正在做一个漂亮的小功能: def startProcess(name, path): """ Starts a process in the background and writes a PID file returns integer: pid """ # Check if the process is already running
..
我有一个python脚本,必须为目录中的每个文件启动一个shell命令: import os files = os.listdir(".") for f in files: os.execlp("myscript", "myscript", f) 这对于第一个文件正常工作,但是在"myscript"命令结束后,执行将停止并且不会返回到python脚本. 我该怎么办?我必须
..
如果我使用给定的命令在python中生成一个新的subprocess(假设我使用python命令启动python解释器),如何将新数据(通过STDIN)发送到进程? 解决方案 使用标准的子流程模块.您使用subprocess.Popen()启动该过程,该过程将在后台运行(即与您的Python程序同时运行).调用Popen()时,您可能希望将stdin,stdout和stderr参数设置为s
..
可能重复: 在pythonw中使用Popen在没有控制台的情况下运行进程 我在Windows上使用python 2.7使用dcraw和PIL自动执行批RAW转换. 问题是,每当我运行dcraw时(每隔几秒钟发生一次),我都会打开一个Windows控制台.如果我以.py格式运行脚本,那么它只会打开主窗口,而不会那么烦人,但我宁愿只显示GUI. 我像这样参与其中: args
..
我正在使用Popen调用Shell脚本,该脚本不断将其stdout和stderr写入日志文件.有什么方法可以同时(连续地)将日志文件输出到屏幕上,或者可以使Shell脚本同时写入日志文件和stdout? 我基本上想在Python中做类似的事情: cat file 2>&1 | tee -a logfile #"cat file" will be replaced with some s
..
我想从Python调用一个外部程序.我已经使用Popen()和call()来做到这一点. 两者之间有什么区别? 我的特定目标是从Python运行以下命令.我不确定重定向的工作方式. ./my_script.sh > output 我阅读了文档,它说call()是一种便利功能,或者快捷功能.通过使用call()而不是Popen()会失去能量吗? 解决方案 有两种方法可以
..
我试图运行一个可执行文件并使用subprocess.Popen捕获其输出;但是,我似乎并没有获得全部输出. import subprocess as s from subprocess import Popen import os ps = Popen(r'C:\Tools\Dvb_pid_3_0.exe', stdin = s.PIPE,stdout = s.PIPE) print '
..
是否可以在Python的subprocess.Popen()中指定命令的运行目录? 例如: Popen('c:\mytool\tool.exe', workingdir='d:\test\local') 我的Python脚本位于C:\programs\python 是否可以在目录D:\test\local中运行C:\mytool\tool.exe? 如何设置子流程的工作
..
我想使用Popen从我的Python脚本中调用ImageMagick的“转换"实用程序,如下所示: Popen(["convert", input_path, "-flop", output_file_path]) (上面的示例只是简单地水平翻转图像) 问题是,当我在Windows中运行该脚本时,它错误地调用了Windows附带的convert.exe实用程序,将FAT分区转换为N
..
如果这是我的子流程: import time, sys for i in range(200): sys.stdout.write( 'reading %i\n'%i ) time.sleep(.02) 这是控制和修改子流程输出的脚本: import subprocess, time, sys print 'starting' proc = subprocess
..
我有一个脚本,可在其中使用popen shell命令启动. 问题在于脚本不会等到该popen命令完成后才继续运行. om_points = os.popen(command, "w") ..... 如何告诉我的Python脚本等待shell命令完成? 解决方案 根据脚本的工作方式,有两种选择.如果要阻止命令执行,而又不执行任何操作,则可以使用subprocess.call.
..
我正在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中)完成
..
由于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"
..
是否可以修改下面的代码以从'stdout'和'stderr'打印输出: 实时打印在终端上, 并最终存储在 outs 和 errs 变量中? 代码: #!/usr/bin/python3 # -*- coding: utf-8 -*- import subprocess def run_cmd(command, cwd=None): p = subprocess.Po
..
我认为在环境稍有修改的情况下运行外部命令是很常见的情况.这就是我倾向于这样做的方式: import subprocess, os my_env = os.environ my_env["PATH"] = "/usr/sbin:/sbin:" + my_env["PATH"] subprocess.Popen(my_command, env=my_env) 我有一种直觉,觉得有更好的办法了
..
有一个程序(我不能修改),它创建两个输出文件.我正在尝试编写一个Python包装程序,该程序调用此程序,同时读取两个输出流,合并输出,并打印到stdout(以方便流传输).我该如何避免死锁?下面的以下概念证明可以很好地工作,但是当我将这种方法应用于实际程序时,它将陷入僵局. 概念证明:这是一个虚拟程序bogus.py,它创建两个输出文件,例如我要包装的程序. #!/usr/bin/en
..
我正在从python调用外部txt文件上的perl脚本,并将输出打印到outfile.但是我想将输出传递给Unix的排序.现在,我不是管道,而是先从perl程序编写输出,然后通过组合下面的代码和此stackoverflow答案来完成此操作. import subprocess import sys import os for file in os.listdir("."): wi
..
子进程将输出几个字符,我想通过stdin发送一些响应.输出的长度是可预测的,所以我写了这样的代码: p = Popen("myproc", shell = True, stdin = PIPE, stdout = PIPE) p.stdout.read(1) 但是,即使进程已经输出了多个字符,p.stdout.read(1)也不会返回.读取预期长度的字节序列后,如何使它停止阻塞?
..
这是我用来启动子进程并监视其输出的C#代码: using (process = new Process()) { process.StartInfo.FileName = executable; process.StartInfo.Arguments = args; process.StartInfo.UseShellExecute = false; proc
..
在shell脚本中,我们具有以下命令: /script1.pl output_file 我想使用模块subprocess在Python中复制以上流. input_file是一个大文件,我无法一次读取整个文件.因此,我想在管道流中传递每行input_string并返回字符串变量output_string,直到整个文件都流过为止.
..