-
2 votesanswersviews
subprocess.Popen() - 对p.stdout.read()和p.wait()的命令有关系吗?
关于Python的subprocess.Popen()对象的问题(请假设为stdout / stderr生成的字节数未填满OS管道缓冲区并创建等待OS管道缓冲区接受更多数据的死锁的情况) 1)p.stdout.read()和p.wait()的顺序是否重要? 2)在stdout / stderr subprocess.PIPE块上执行read()直到进程终止? 3)即使在进程终止后,stdout /... -
1 votesanswersviews
我是否应该使用Popen的等待或通信来读取Python 3中的子进程中的stdout? [重复]
这个问题在这里已有答案: read subprocess stdout line by line 7个答案 我试图在Python 3中运行子进程并不断读取输出 . 在Python 3的 subprocess 文档中,我看到以下内容: Popen.wait(timeout = None)等待子进程终止 . 设置并返回returncode属性 . 警告当使用stdout = PIPE和/或std... -
13 votesanswersviews
新手python子进程:“写入错误:断管”
感谢以下有用的建议: 所以我似乎已经修好了 单独命令到Popen的单独调用 stderr = subprocess.PIPE作为每个Popen链的参数 . 新代码: import subprocess import shlex import logging def run_shell_commands(cmds): """ Run command... -
4 votesanswersviews
通过python子进程与stdin通信
我正在使用子进程从我的python代码运行一个exe,代码如下: if subprocess.call(string, stderr=stdPoller, stdout=stdPoller, stdin=stdPoller, shell=True)==0: return True stdPoller 只是轮询stdout和stderr并写入日志 . 这不是问题所在 . 当... -
1 votesanswersviews
背景与stdin的python子进程
我查看了子进程模块的文档并用P_NOWAIT替换了spawn1,但我没有看到如何使用它并将数据写入stdin . 也就是说,如果我打电话给 pid = Popen(...).pid 正如文档所示,那么我在哪里与stdin PIPE进行通信 . 这是一些示例代码 档案1: #!/usr/bin/env python # testing how to run a processin the back... -
0 votesanswersviews
python子进程管道无缓冲行为
我有下面的代码来读取子进程中的数据,因为它生成并写入文件 . from subprocess import Popen, PIPE proc = Popen('..some_shell_command..', shell=True, stdout=PIPE) fd = open("/tmp/procout", "wb") while True: da... -
10 votesanswersviews
为什么shell = True吃我的subprocess.Popen stdout?
似乎在链的第一个进程中使用shell = True会以某种方式从下游任务中删除stdout: p1 = Popen(['echo','hello'], stdout=PIPE) p2 = Popen('cat', stdin=p1.stdout, stdout=PIPE) p2.communicate() # outputs correctly ('hello\n', None) 使第一个进程使... -
2 votesanswersviews
Python subprocess&stdout - 程序死锁
我有一个模拟程序,它通过stdin引导并向stdout提供输出 在QProcess中运行 C++/Qt 程序效果很好 . 在 linux 下运行 Python 程序运行良好,使用: p = subprocess.Popen(cmd,stdin=subprocess.PIPE,stdout=subprocess.PIPE) 并使用 p.stdin.write , p.stdout.readline... -
0 votesanswersviews
当指定stdin = PIPE时,Python subprocess.Popen终止
我是python中的子进程的新手,我需要生成一些独立的子进程,让它们保持活动状态并将命令传递给它们 . 乍一看,子进程库是我正在寻找的 . 我已经阅读了documenations,因为我必须指定输入 . 我需要通过windows命令行运行命令,因此下面的玩具示例足够好,如果我有它工作,我'm pretty much done. Running code below via IDLE opens a... -
0 votesanswersviews
Python Subprocess - run()stderr不会重定向到stdout
我有一个写入stderr的程序,没有写入stdout,我可以通过运行正确捕获: program -badargs 2> stderr.txt 但是,在尝试使用Python的子进程时,我无法捕获输出 . 我想将stderr与stdout结合起来 . 我使用的命令是: x = run('program -badargs', shell=True, stdout=subprocess.PIPE,... -
19 votesanswersviews
为什么带有shell = True的subprocess.Popen()在Linux与Windows上的工作方式不同?
当使用 subprocess.Popen(args, shell=True) 运行“ gcc --version ”(仅作为示例)时,在Windows上我们得到: >>> from subprocess import Popen >>> Popen(['gcc', '--version'], shell=True) gcc (GCC) 3.4.5 (mingw-... -
15 votesanswersviews
从stdin读取标准输出?
当连接到终端时,stdout是行缓冲的,但我记得在某处读取(至少从stdin)将自动刷新stdout . 我使用的所有C实现都已经完成了,但我现在无法在标准中找到它 . 它确实有意义,它是这样的,否则代码如下: printf("Type some input: "); fgets(line, sizeof line, stdin); 需要一个额外的 fflush(stdout... -
3 votesanswersviews
subprocess.Popen:stdin,stdout,stderr的不同缓冲?
我需要在对行缓冲的Popen调用中设置 stderr 流 . 我发现了 bufsize 参数,但它适用于所有 stdin , stdout 和 stderr 文件 . 如何调整每个文件的缓冲区别? -
1 votesanswersviews
调用subprocess.Popen并将stdin,stdout和stderr设置为subprocess.PIPE更改终端的行为
我最近开发了一个Python脚本,以利用工具通过JMX从JVM中检索指标 . 父进程( p1 )使用以下代码启动另一个进程( p2 ) . p2 = subprocess.Popen( ['java', '-jar', '/path/to/jmxterm-1.0-alpha-4-uber.jar', '-l', url, '-u', username, '-p', passwor... -
6 votesanswersviews
如果我不在subprocess.Popen()中使用stdout = subprocess.PIPE,有什么区别?
我最近在Python中注意到 subprocess.Popen() 有一个参数: stdout=None(default) 我也看到人们使用stdout = subprocess.PIPE . 有什么不同?我应该使用哪一个? 另一个问题是,为什么wait()函数不能等到有时完成进程?我用了: a = sp.Popen(....,shell=True) a.wait() a2 = sp.Popen... -
0 votesanswersviews
为什么stdin和stdout被认为是C中的文件?
例如, stdio.h 库有一些需要 FILE * 参数的函数,但接受来自终端的用户输入的 stdin . -
2 votesanswersviews
通过stdin和stdout与长时间运行的子进程通信
对不起,我想这之前已经被问过,但由于某种原因我似乎无法找到答案 . 我试图启动一个长时间运行的子进程,如REPL(lein repl,python),并通过stdin / stdout与它通信 . 我找到了许多如何在父母只写一次孩子然后读取一些输入的情况下做这个的例子,但是我无法弄清楚如何做到这一点我可以写入和读取子进程'stdin / stdout无限期,就像我使用TCP套接字一样 . 理想情况... -
1 votesanswersviews
Python subprocess.Popen不适用于stdout
我需要实现一个外部应用程序来计算Modbus通信的CRC值 . 可执行文件需要输入字符串并返回如下输出: CRC16 = 0x67ED / 26605 CRC16 (Modbus) = 0x7CED / 31981 我调用该程序,然后手动输入输入 . p = Popen(["some_file.exe", "-x"], stdin=PIPE) p.comm... -
8 votesanswersviews
写入Python subprocess.Popen对象的文件描述符3
如何写入subprocess.Popen对象的文件描述符3? 我正在尝试使用Python完成以下shell命令中的重定向(不使用命名管道): $ gpg --passphrase-fd 3 -c 3<passphrase.txt < filename.txt > filename.gpg -
4 votesanswersviews
Python subprocess.check_call - 如何将stdout和stderr指向_both_屏幕和日志文件?
我使用Python 2.7 . 这就是我目前正在做的从Python启动其他程序,将STDOUT和STERR重定向到LOGFILE: try: # Execute command and print content to LOGFILE tempname = os.path.abspath('./text.txt') TEMPFILE = open(tempn... -
6 votesanswersviews
Windows上的Python Popen具有多线程 - 无法删除stdout / stderr日志
在Windows上使用python 2.7.4(注意:WinXP - 下面的评论者建议在Win7上正常工作),我有一个脚本创建几个线程,每个线程通过Popen运行子进程,stdout / stderr重定向到文件和调用等待() . 每个Popen都有自己的stdout / stderr文件 . 在每个进程返回后,我有时必须删除文件(实际上将它们移动到别处) . 我发现在所有wait()调用返回之... -
0 votesanswersviews
Python:在记录内存时获取子进程STDOUT
这是我的问题: 我正在尝试编写一个代码来记录子进程作业占用的内存并同时获取该作业的标准输出 . 为此,我用子进程调用python脚本: res = Popen(args,shell = False,stderr = STDOUT,stdout = PIPE) 为了获得内存,我用res.pid获得了这份工作的pid . 然后我用psutil获取内存: p = psutil.Process(... -
0 votesanswersviews
ERROR 1932(42S02):引擎中不存在表'xxx.wp_users'
升级到Mariadb后 . 我收到此错误,无法访问我的数据库: ERROR 1932(42S02):引擎中不存在表'xxx.wp_users' 使用:mysql Ver 15.1使用readline 5.2分发10.1.34-MariaDB,用于debian-linux-gnu(x86_64) 位于/ var / lib / mysql /的ibdata具有正确的权限: -rw-rw---- 1 ... -
1 votesanswersviews
Python:将子进程Popen stdout重定向到日志文件
我有一个python进程在运行,有一个logger对象配置为在日志文件中打印日志 . 现在,我试图通过这个 python 进程调用 scala 脚本,使用Python的 subprocess 模块 . subprocess.Popen(scala_run_command, stdout=subprocess.PIPE, shell=True) 问题是,每当python进程退出时,它都会挂起she... -
0 votesanswersviews
使用Python popen合并stdout和stderr并检测stderr是否为空
我想用popen运行一个子进程,它可以向stdout和stderr发送消息,但是这个子进程将继续沿着它的快乐方式,尽管写入stderr . 我想将stdout和stderr一起流,所以我按照它发生的确切顺序得到输出(或者我在技术上刷新了) . 然后,我想记录完整的结果集 . 但我也想独立知道stderr是否为空 . 如果不是,我将抛出异常 . 我很清楚如何将它们分开或合并在一起,但我怎么可能同时做... -
4 votesanswersviews
将两个进程的stdout重定向到Linux C中的另一个进程的stdin
我遇到了关于多进程重定向stdout的问题 . 假设我有进程A,我在A中使用fork(),然后我得到进程A和B.然后我在B中使用fork(),最后我得到进程A,B和C.B和C都在实现其他程序EXEC() . 现在,我尝试用两个管道将A和B的stdout重定向到C的stdin . #include<unistd.h> #include<stdio.h> #include<... -
8 votesanswersviews
Python3子进程通信示例
我是子处理的新手 . 我只需要在 parent.py 和 child.py 之间使用一个非常简单的win32的communic()示例 . 从parent.py发送到child.py的字符串,由child.py更改,并从parent.py发送回parent.py以获取print() . 我发布这个是因为我发现的例子最终要么不是win32,要么不使用让我困惑的孩子 . 谢谢你的帮助 . -
1 votesanswersviews
从stdin读取时,Node.js无法读取python subprocess标准输出
我有一个node.js脚本,它启动一个python子进程并读取它的stdout . 只要python进程不尝试从stdin读取,这就可以工作 . 然后父进程没有从子进程获得任何内容 . 我在这里有node.js脚本和两个python测试用例:(如果你注释试图从stdin读取的行,这两个例子都有效) 第一个孩子: import sys print('before') for line in sy... -
56 votesanswersviews
你如何在Perl中同时捕获stderr,stdout和退出代码?
是否可以从Perl运行外部进程,捕获其stderr,stdout和进程退出代码? 我似乎能够做这些的组合,例如使用反引号获取stdout,使用IPC :: Open3捕获输出,使用system()获取退出代码 . 你如何一次捕获stderr,stdout和退出代码? -
9 votesanswersviews
无法在服务器中以5.7到8.0之前的速度升级服务器 . 服务器启动失败
我尝试在centos 7.4上配置Mysql服务器 . 将Mysql 8.0安装到我的系统后, systemctl restart mysqld 失败 . 请参阅错误日志/var/log/mysqld.log . [系统] [MY-010116] [服务器] / usr / sbin / mysqld(mysqld 8.0.11)从进程320开始[错误] [MY-013168] [InnoDB]...