popen相关内容
为什么以下选项不起作用? import subprocess process = subprocess.Popen('cmd.exe', shell=False, stdin=subprocess.PIPE, stdout=subprocess.PIPE, stderr=None) 我得到的输出如下: The process tried to write to a nonexis
..
我想实现从Windows到Linux的代码: a=subprocess.Popen(['python.exe','hello.py']) 推荐答案 有两个问题。首先,python.exe在Linux中被简单地称为python,其次,python可执行文件不在当前目录中,而是位于系统路径中的某个位置。要让Linux在路径中查找python,您可以让POpen使用一个外壳: a=
..
给定此代码片段: from subprocess import Popen, PIPE, CalledProcessError def execute(cmd): with Popen(cmd, shell=True, stdout=PIPE, bufsize=1, universal_newlines=True) as p: for line in p.stdo
..
因此,我尝试对某个任意文件调用Windows命令类型。不幸的是,每当我将cmd从外壳命令转换为非外壳命令时,都会失败。因此,我不能使用推荐的方法来确保我的Python脚本不会被利用。这里有一个例子。 import subprocess cmd = "type" + '"' + "some_file_with_no_spaces_or_other_things_wrong" + '"' p =
..
当我使用 popen 获取命令的输出时,比如 dir,它会提示一个控制台. 但是,我可以在没有控制台出现的情况下获得命令的输出吗? 我正在使用 Visual C++,并希望创建一个库来返回某些命令的输出,例如 dir. 解决方案 假设 Windows(因为这是唯一普遍存在这种行为的平台): CreatePipe() 来创建通信所需的管道,以及 CreateProcess创
..
在尝试模拟 Popen 时,只有在单元测试代码和主模块代码中子流程的导入匹配时,我才能使其成功. 给定以下模块 listdir.py: from subprocess import Popen, PIPE定义列表目录(目录):cmd = ['ls', 目录]pc = Popen(cmd, stdout=PIPE, stderr=PIPE)出来,错误 = pc.communicate()如果
..
我不知道发生了什么,但是当我打印到控制台或文本文件时,换行符 (\n) 不起作用,而是显示在字符串中.知道如何在控制台和文本文件中避免这种情况吗? 我的代码: 导入子流程hosts_file = open("hosts.txt","r")行 = hosts_file.readlines()对于行中的行:line = line.strip()ping = subprocess.Popen([
..
目前,我有这样的事情: self.process = subprocess.Popen(self.cmd, stdout=subprocess.PIPE)出,错误 = self.process.communicate() 我正在运行的命令流式传输输出,我需要在继续之前阻止该进程. 如何才能捕获流输出并通过标准输出打印流输出?当我设置 stdout=subprocess.PIPE 时,我可
..
所以我有一个 python 脚本,它运行一个循环,它通过子进程调用程序 A.Popen 等待它的输出,然后保存输出,然后再次调用它,依此类推.(这在我设置为输入的多次运行中不断发生) 问题是我有一个计时器,这样每当程序 A 花费的时间超过特定的阈值时间时,脚本就会使用 process.kill() 终止进程并继续进行下一次迭代. 问题是,即使运行 300 次似乎一切正常,但有时我会收到
..
似乎在链的第一个进程中使用 shell=True 会以某种方式从下游任务中删除标准输出: p1 = Popen(['echo','hello'], stdout=PIPE)p2 = Popen('cat', 标准输入=p1.stdout, 标准输出=PIPE)p2.communicate()# 正确输出 ('hello\n', None) 让第一个进程使用 shell=True 会以某种方式杀
..
我正在尝试使用 subprocess 模块与使用 Python 的命令行聊天机器人进行通信.(http://howie.sourceforge.net/使用编译好的win32二进制,我有我的理由!) 这行得通: proc = Popen('Howie/howie.exe', stdout=PIPE,stderr=STDOUT,stdin=PIPE)输出 = proc.communicate
..
用于识别 Xcode 是否在 Mac 上运行的命令框架:cmd = "ps -ax | grep -v grep | grep Xcode" 如果 Xcode 没有运行,那么上面的命令适用于 subprocess 模块的 Popen 方法,但会引发 CalledProcessError 与 check_output 方法.我试图通过以下代码检查stderr,但未能获得适当的信息来理解原因.
..
我正在尝试使用 python subprocess.Popen() 调用与子进程交谈.在我的真实代码中,我正在实现一种 IPC,所以我想写入一些数据、读取响应、写入更多数据、读取响应等等.因此,我不能使用 Popen.communicate(),否则它适用于简单的情况. 这段代码显示了我的问题.它甚至从来没有得到第一个响应,挂在第一个“阅读结果"上.为什么?我怎样才能使这项工作如我所愿?
..
我正在编写一个小脚本来串行遍历目录并在其中的子目录上运行命令. 我遇到了一个问题,但是 Popen()它将遍历目录并运行所需的命令,而无需等待前一个命令完成.即 对于目录中的目录:#run 命令在这里的目录上. 它会启动每个目录的命令而不关心它.我希望它等待当前一个完成,然后开始下一个.我在目录中使用的工具是来自 SANS SIFT 的 Log2timeline,它需要相当长的时间并产生
..
我正在尝试从 python 执行一个 shell 脚本(不是命令): main.py--------从子流程导入 Popen进程=Popen(['./childdir/execute.sh',str(var1),str(var2)],shell=True)执行.sh----------echo $1//不打印任何东西echo $2//不打印任何东西 var1 和 var2 是我用作 shell
..
我已经查看了他们两个的文档. JF 在这里的评论提示了这个问题:检索输出subprocess.call() subprocess.call() 的当前 Python 文档 对 subprocess.call() 使用 PIPE 有如下说明: 注意不要在此函数中使用 stdout=PIPE 或 stderr=PIPE.如果子进程生成足够的输出到管道以填满操作系统管道缓冲区,则子进程
..
根据文档,在 windows 中的 python 2.7 中,您可以发送 CTRL_C_EVENT(Python 2.7 子进程 Popen.send_signal 文档).但是,当我尝试它时,我没有在子进程中收到预期的键盘中断. 这是父进程的示例代码: # 文件:parentProcess.py导入子流程进口时间进口信号CREATE_NEW_PROCESS_GROUP = 512进程 =
..
我正在尝试在 python 中处理 tcpdump 输出. 我需要的是运行 tcpdump(它捕获数据包并为我提供信息)并读取输出并处理它. 问题是 tcpdump 一直在运行,我需要在它输出后立即读取数据包信息并继续执行. 我尝试查看 python 的子进程并尝试使用 popen 调用 tcpdump 并通过管道传输标准输出,但它似乎不起作用. 有关如何进行此操作的任何说
..
我有一个很简单的问题.我有一个大文件,它经过三个步骤,一个使用外部程序的解码步骤,在 python 中的一些处理,然后使用另一个外部程序重新编码.我一直在使用 subprocess.Popen() 尝试在 python 中执行此操作,而不是形成 unix 管道.但是,所有数据都缓冲到内存中.有没有一种 Python 的方式来完成这项任务,或者我最好退回到一个简单的 Python 脚本,该脚本从标准
..
我有子进程命令来检查 md5 校验和为 subprocess.check_output('md5 Downloads/test.txt', stderr=subprocess.STDOUT, shell=True) 它工作正常.但我读了尽量避免 shell=True但是当我运行时 subprocess.check_output('md5 Downloads/test.txt', stderr
..