-
35 votesanswersviews
从子进程调用时,Python程序永远挂起
pip测试套件使用子进程调用来运行集成测试 . 最近放置了PR,删除了一些旧的兼容性代码 . 特别是它使用 b"" 文字明确使用了 b() 函数 . 然而,这似乎打破了特定子进程调用永远挂起的地方 . 更糟糕的是,它只会永远挂在Python 3.3(可能只有Python 3.3.5)上,并且不能轻易地在Travis之外复制 . 相关的拉动请求: https://github... -
0 votesanswersviews
python子进程挂起,不能用ctrl c退出(随机发生)
我正在运行包含 selenium testing and some URL requests 到服务器的 myapp.py ,以及 many logs . 偶尔我的应用程序 hangs ,同时Ctrl C也不知道它到底卡在哪里,但我认为它是在使用 Genderize().get(names=['rob']) 之后向服务器发出URL请求的 . 由于它是第三方模块,我无法真正调试它 . 但是在我的应... -
1 votesanswersviews
python中的子进程错误
from subprocess import Popen,PIPE from Tkinter import * root=Tk() calc=Frame(root) calc.grid() root.title("Calculator") bt=Button(calc,text="3") bt.grid() process=subprocess.Popen(... -
2 votesanswersviews
subprocess stdin PIPE在程序终止之前不会返回
我一直试图用subprocesses解决Subprocess.PIPE没有运气 . 我正在尝试将命令传递给始终正在运行的进程并接收结果,而不必每次都关闭/打开进程 . 这是主要的启动代码: launcher.py: import subprocess import time command = ['python', 'listener.py'] process = subprocess.Pope... -
0 votesanswersviews
Windows上的Python子进程:stdout中的stderr输出(但如果我在cmd.exe中运行该命令则不行)
我希望我的python脚本处理 sigcheck.exe 工具的结果 . 以下命令在 cmd.exe 中运行时打印出一个 Banner (这似乎是stderr输出)并将stdout输出写入csv文件: sigcheck64 -c c:\tmp\unsigned.exe > csv_output.csv 这将显示stdout输出并将stderr(标头)写入文件:sigcheck64 -c c... -
1 votesanswersviews
Python subprocess.Popen stdin干扰stdout / stderr
对此感到非常困惑 . 使用Popen时,如果只使用stdout或stderr,则以下代码有效: def run(self): self.externalProcess = subprocess.Popen(['./external_process.out 1>&2'], shell=True, stderr=subprocess.PIPE) while self.ex... -
26 votesanswersviews
你能像往常一样制作python子进程输出stdout和stderr,还能将输出捕获为字符串吗? [重复]
可能重复:包装子进程'stdout / stderr 在this question中,hanan-n询问是否可以将python子进程输出到stdout,同时还将输出保存在字符串中以供以后处理 . 在这种情况下,解决方案是遍历每个输出行并手动打印它们: output = [] p = subprocess.Popen(["the", "command"],... -
5 votesanswersviews
subprocess popen.communicate()与stdin.write()和stdout.read()
我注意到两种不同的行为,两种方法应该产生相同的结果 . 目标 - 使用子进程模块执行外部程序,发送一些数据并读取结果 . 外部程序是PLINK,平台是WindowsXP,Python版本3.3 . 主要想法 - execution=["C:\\Pr..\\...\\plink.exe", "-l", username, "-pw", &q... -
6 votesanswersviews
为什么将stdin提供给subprocess.Popen会导致写入stdout的内容发生变化?
我正在使用Python的subprocess.Popen使用主机操作系统的二进制客户端执行一些FTP . 出于各种原因,我无法使用ftplib或任何其他库 . 如果我将stdin处理程序附加到Popen实例,则二进制文件的行为似乎会发生变化 . 例如,使用XP的ftp客户端,它接受要发出的命令的文本文件: >>>from subprocess import Popen, PIPE... -
10 votesanswersviews
Python监视子进程的stderr和stdout
我试图从python 2.7中启动一个程序(HandBreakCLI)作为子进程或线程 . 我已经开始了,但我无法弄清楚如何监控它的stderr和stdout . 程序将其状态(完成%)和有关编码的信息分别输出到stderr和stdout . 我希望能够定期从适当的流中检索完成的% . 我已经尝试调用subprocess.Popen并将stderr和stdout设置为PIPE并使用subproce... -
30 votesanswersviews
Python Popen:同时写入stdout和日志文件
我正在使用Popen调用一个shell脚本,该脚本不断将其stdout和stderr写入日志文件 . 有没有办法连续同时输出日志文件(到屏幕),或者让shell脚本同时写入日志文件和标准输出? 我基本上想在Python中做这样的事情: cat file 2>&1 | tee -a logfile #"cat file" will be replaced with ... -
15 votesanswersviews
使用python进行交互式输入/输出
我有一个与用户交互的程序(就像一个shell),我想以交互方式使用python子进程模块运行它 . 这意味着,我希望有可能写入stdin并立即从stdout获取输出 . 我在这里尝试了许多解决方案,但它们似乎都不能满足我的需求 . 我写的代码基于Running an interactive command from within python import Queue import threadi... -
272 votesanswersviews
使用模块'subprocess'超时
这是运行任意命令返回其 stdout 数据的Python代码,或者在非零退出代码上引发异常: proc = subprocess.Popen( cmd, stderr=subprocess.STDOUT, # Merge stdout and stderr stdout=subprocess.PIPE, shell=True) communicate 用于等待进... -
3 votesanswersviews
如何通过subprocess.Popen获取PID自定义环境变量?
使用Python,如何使用修改后的环境变量运行子进程并获取其PID?我假设subprocess.Popen()是沿着正确的轨道...... 在shell(bash)中,我会这样做: MY_ENV_VAR=value ./program_name arg1 arg2 etc & 这在后台运行 program_name ,传入"arg1"和"arg2"... -
9 votesanswersviews
python subprocess.Popen怎么能看到select.poll然后呢? (选择'module'对象没有属性'poll')
我正在使用Yelp中的(真棒)mrjob库在亚马逊的Elastic Map Reduce中运行我的python程序 . 它取决于标准python库中的子进程 . 从我的mac运行python2.7.2,一切都按预期工作 但是,当我在使用python2.7.2的Ubuntu LTS 11.04上使用完全相同的代码时,我遇到了一些奇怪的事情: mrjob加载作业,然后尝试使用子进程与其子进程通信并生成... -
0 votesanswersviews
子进程打开('source venv/bin/activate'),没有这样的文件?
我想进入python文件中的虚拟环境 . 但它没有引发这样的文件 . import subprocess subprocess.Popen(['source', '/Users/XX/Desktop/mio/worker/venv/bin/activate']) Traceback(最近一次调用最后一次):文件“/Users/Ru/Desktop/mio/worker/run.py”,第3行... -
19 votesanswersviews
将stdout从subprocess.Popen保存到文件,再将更多内容写入文件
我正在编写一个python脚本,它使用subprocess.Popen来执行两个程序(来自编译的C代码),每个程序都生成stdout . 该脚本获取该输出并将其保存到文件中 . 因为输出有时足以压倒subprocess.PIPE,导致脚本挂起,所以我将stdout直接发送到日志文件 . 我想让我的脚本写一些文件的开头和结尾,以及两个subprocess.Popen调用之间 . 但是,当我查看我的日... -
2 votesanswersviews
同时读取子进程stdout和stderr
我试图在Python中运行一个冗长的命令,输出到stdout和stderr . 我想轮询子进程并将输出写入单独的文件 . 基于这个答案,我尝试了以下内容Non-blocking read on a subprocess.PIPE in python import subprocess from Queue import Queue, Empty from threading import Thr... -
1 votesanswersviews
Python - 如何在subprocess.Popen中分别为stdin和stdout使用两个线程?
我运行了一个命令行程序,可以接受任何以stdin中的“Enter”键结束的文本输入,并立即向stdout发送文本响应 . 现在我有一个包含数千个句子和每行一个句子的文件 . 我可以使用两个线程,一个用于逐行读取此文件并在运行命令行程序时将其发送到stdin,另一个线程用于捕获响应并写入另一个文件? 对于“发送到stdin”线程: def readSentence(inpipe, senlines)... -
-1 votesanswersviews
WINAPI:禁用stdin stdout stderr句柄的继承[关闭]
我使用带有标志 BOOL bInheritHandles = TRUE 的CreateProcess创建了子进程,因为我想将一些句柄传递给子进程的匿名管道 . 我在 STARTUPINFO struct中设置了 hStdInput , hStdOutput 和 hStdErro 以及 STARTF_USESTDHANDLES 标志,因为我不想对childs stdout等做一些事情 . 但是子进... -
0 votesanswersviews
Crontab没有通过脚本注册更改
我正在使用python subprocess 对 crontab 进行更改,具体使用: subprocess.Popen(["crontab", cron_tab_file]) 这一切都很好,当我使用 crontab -l 检查crontab时, cron_tab_file 中的所有内容都存在 . 但是,什么都没有 . 我总是使用完整的路径,例如: * * * * * /b... -
190 votesanswersviews
逐行读取子进程标准输出
我的python脚本使用subprocess来调用非常嘈杂的linux实用程序 . 我想将所有输出存储到日志文件中并向用户显示一些输出 . 我认为以下内容可行,但在实用程序产生大量输出之前,输出不会显示在我的应用程序中 . #fake_utility.py, just generates lots of output over time import time i = 0 while True: ... -
0 votesanswersviews
从python中的管道子进程stdout读取行时的内存使用情况
我只是想了解在处理subprocess.Popen()结果和逐行读取时内存使用方面在“背景”中发生的情况 . 这是一个简单的例子 . 给定以下脚本 test.py 打印"Hello"然后等待10s并打印"world": import sys import time print ("Hello") sys.stdout.flush() ti... -
0 votesanswersviews
subprocess stdout字符串解码不起作用
我一口打印,它立即打印在命令行上,它在一段时间内生成多行 . 该工具为bs1770gain,命令为"path\to\bs1770gain.exe" "-i" "\path\to\audiofile.wav",通过使用--loglevel参数,您可以包含更多数据,但无法删除写入stdout的渐进结果 . 我需要stdout来返回一个人类可读... -
0 votesanswersviews
Python子进程抛出[Errno 2]没有这样的文件或目录,只有当它在远程主机上时才会生成错误
我正在运行python 2.6 . 我正在获取子进程抛出[Errno 2]仅当我通过ssh运行脚本时才有这样的文件或目录 . 例如,如果我在机器上手动运行脚本,则没有错误,但如果我执行ssh hostname script.py --host hostname 它会生成错误并告诉我文件“/usr/lib64/python2.6/subprocess.py丢失,但这不是真的,因为两个服务器都有该文... -
1 votesanswersviews
如何运行Python的子进程并将其保留在后台
我看过很多关于我话题的帖子,但实际上我找不到解决问题的方法 . 我正在尝试在后台运行子进程,而不等待子进程执行 . 被调用的子进程是一个shell脚本,它执行许多不同的操作 . 这是我的一小段代码: print "Execute command:", full_command subprocess.Popen(full_command, stdin=None, stdout=N... -
6 votesanswersviews
Python的Subprocess.Popen使用Shell = True . 等到它完成
提交由完整文件路径构成的复杂 cmd 字符串到可执行文件,多个标志,参数,参数,输入和输出似乎需要我设置 shell=True 否则subprocess.Popen无法理解任何比简单路径更复杂的东西可执行文件(文件路径中没有空格) . 在我的例子中,我有一个很长的cmd: cmd = " '/Application/MyApp.app/Contents/MacOS/my_executab... -
0 votesanswersviews
Python kill批处理文件进程失败
我正在尝试使用Python subprocess.Popen 来运行批处理文件,该文件执行 xfoil.exe 并为其提供一些参数 . 然后等待直到xfoil.exe退出 . 我已经使用以下代码作为批处理运行程序,它等待进程以超时退出 . 如果超时,该过程将被终止 . def Bat_Runner(args, **kwargs): """ Batch... -
1 votesanswersviews
python管道从错误的子进程获取输出
我有一个用在Linux中运行的python 3.2编写的应用程序,它大量使用了子进程模块和主题 . 其中一个功能是调用自定义脚本以获取各种特定于域的进程的up / down状态 . 由于我们有数百个,因此状态使用多个线程 . 应用程序以“线程”模式运行xmlrpc服务器以服务传入的请求 . class AsyncXMLRPCServer(socketserver.ThreadingMixIn,Si... -
4 votesanswersviews
将可能包含非ascii unicode字符的powershell输出解码为python字符串
我需要将从python调用的powershell stdout解码为python字符串 . 我的最终目标是以字符串列表的形式获取Windows中网络适配器的名称 . 我当前的功能看起来像这样,在Windows 10上使用英语时效果很好: def get_interfaces(): ps = subprocess.Popen(['powershell', 'Get-NetAdapter', ...