subprocess相关内容

BASH:从两个输入流中读取的最佳架构

这里是简单的脚本: a) 不断从套接字读取数据并将值存储在关联数组中 b) 不断地从标准输入读取值,如果它们已经存在于关联数组中,则响应 t/f 一个&b 是随机事件,没有任何关联. 诀窍是从两个子进程访问数组(因为将进程置于后台会生成子进程) 我正在考虑最好的策略,并且出现了一些想法,但我想知道是否有人有更好的想法: 1) 将输入从套接字重定向到标准输入作为子进程 ..
发布时间:2022-01-18 16:00:49 服务器开发

与 popen python 一起使用时,输入命令似乎不起作用

我正在编写一个执行 scala 命令的小型 python 应用程序.用户可以通过 STDIN 插入命令,然后 python 应用程序将它们转发到 scala 解释器.执行命令后,应用程序会显示操作结果. 这个想法是使用 Popen 创建一个管道,我可以通过它发送命令和读取结果.这个想法很简单,但它不起作用.我不明白的是,为什么打开管道后 sys.stdin 不再起作用.这使得无法在 pyth ..
发布时间:2022-01-18 16:00:33 Python

子进程标准输入缓冲区未在 bufsize=1 的换行符上刷新

我有两个小的 python 文件,第一个使用 input 读取一行,然后打印另一行 a = input()打印('完成') 第二次尝试将其作为子进程运行 导入子流程proc = subprocess.Popen('./simp.py',标准输出=子进程.PIPE,标准输入=子进程.PIPE,缓冲区大小=1)打印('写作')proc.stdin.write(b'hey\n')打印('阅读')p ..
发布时间:2022-01-18 16:00:23 Python

为什么向 subprocess.Popen 提供标准输入会导致写入标准输出的内容发生变化?

我正在使用 Python 的 subprocess.Popen 使用主机操作系统的二进制客户端执行一些 FTP.由于各种原因,我无法使用 ftplib 或任何其他库. 如果我将标准输入处理程序附加到 Popen 实例,二进制文件的行为似乎会发生变化.例如,使用 XP 的 ftp 客户端,它接受要发出的命令的文本文件: >>>from subprocess import Popen, PIP ..
发布时间:2022-01-18 16:00:14 Python

subprocess.Popen 使用相对路径

Popen 的 docs 提到你可以't 指定相对于“更改工作目录"kwarg 的可执行路径. 如果cwd不为None,则孩子的当前目录将变为cwd 在执行之前.注意这个目录不是搜索可执行文件时考虑,因此您不能指定程序相对于 cwd 的路径. 但是 python 在我的系统上的行为似乎直接与这个说法相矛盾: /tmp$ mkdir a/tmp$ cp/bin/ls/tmp/a/my_ ..
发布时间:2022-01-18 15:59:50 Python

带有引号和变量的 Python 子进程命令

我有一个复杂的命令,我想用子进程运行.它包含单引号和双引号,我想插入一些变量. 这是字符串: gitlab create_merge_request 5 "{} - 新合并请求 - {}" "{source_branch: '{}', target_branch: 'dev', assignee_id: 1}" --json 我想保留“新合并请求"部分周围的引号(它包含两个变量和“sou ..
发布时间:2022-01-18 15:59:26 Python

在 Python 中使用斯坦福正则表达式

我是 NLP 和 Python 的新手.我正在尝试使用 Tregex 工具和 Python 子进程库从来自 StanfordCoreNLP 的解析树中提取名词短语的子集.特别是,我正在尝试查找和提取与以下模式匹配的名词短语:'(NP[$VP]>S)|(NP[$VP]>S\n)|(NP\n[$VP]>S)|(NP\n[$VP]>S\n)' 在 Tregex 语法中. 例如,下面是原始文本,保存 ..
发布时间:2022-01-18 15:59:00 Python

如何从 Python 迭代器提供子进程的标准输入?

我正在尝试使用 Python 中的 subprocess 模块与以流方式读取标准输入并写入标准输出的进程进行通信.我想让子进程从产生输入的迭代器中读取行,然后从子进程中读取输出行.输入和输出线之间可能没有一一对应的关系.如何从返回字符串的任意迭代器中提供子进程? 这里有一些示例代码给出了一个简单的测试用例,以及我尝试过的一些方法由于某种原因不起作用: #!/usr/bin/python从子 ..
发布时间:2022-01-18 15:58:05 Python

忽略 subprocess.Popen 的输出

我正在从我的 Python 脚本调用一个 java 程序,它输出了很多我不想要的无用信息.我已经尝试将 stdout=None 添加到 Popen 函数中: subprocess.Popen(['java', '-jar', 'foo.jar'], stdout=None) 但它也是一样的.有什么想法吗? 解决方案 来自 3.3 文档: stdin、stdout 和 stderr ..
发布时间:2022-01-18 15:57:59 Python

python subprocess.call() “没有这样的文件或目录"

我在模块上发现了一些问题,但更常见的问题似乎是我认为我已经管理的参数列表正确(最终) 我正在尝试运行一个程序,该程序需要在命令行中输入这样的输入, fits2ndf 输入输出 'in' 是要转换的文件的文件路径,'out' 是保存结果的路径和文件名. 所以使用子进程, subprocess.call(["fits2ndf","/media/tom_hdd/Transfer/ref ..
发布时间:2022-01-18 15:57:49 Python

将 subprocess.Popen 输出附加到文件?

我可以成功地将我的输出重定向到一个文件,但这似乎覆盖了文件的现有数据: 导入子流程outfile = open('test','w') #same with "w" or "a" 作为打开方式outfile.write('你好')subprocess.Popen('ls',stdout=outfile) 将从文件中删除 'Hello' 行. 我想一种解决方法是将输出作为字符串或其他东西存 ..
发布时间:2022-01-18 15:57:39 Python

Howto:close_fds=True 的解决方法并在 Windows 上重定向 stdout/stderr

我遇到了一个问题:使用 Python 2.7,无法使用创建子进程 subprocess.Popen([.......], close_fds=True, stdout=subprocess.PIPE, ...) 由于限制,在 Windows 上.在我的情况下需要使用 close_fds,因为我不希望子进程从已经打开的文件文件描述符继承.这是在库中调用的,这意味着我无法控制已打开的文件描述符(N ..
发布时间:2022-01-18 15:57:23 Python

如何在 Python 2.7 中线程化多个子进程实例?

我有三个命令,否则它们很容易在命令行上链接在一起,如下所示: $ echo foo |firstCommand - |secondCommand - |第三命令->最终输出 换句话说,firstCommand 处理来自标准输入的 foo 并将结果通过管道传送到 secondCommand,后者依次处理该输入和管道其输出到 thirdCommand,后者进行处理并将其输出重定向到文件 final ..

如何使用子进程模块与 ssh 交互

我正在尝试使用子进程生成一个 ssh 子进程. 我正在 Windows 7 上开发 Python 2.7.6 这是我的代码: 从子流程导入 *r=Popen("ssh sshserver@localhost", stdout=PIPE)标准输出,标准错误=r.communicate()打印(标准输出)打印(标准错误) 输出: 无 stdout 应包含:sshserver@loc ..
发布时间:2022-01-18 15:57:05 Python

如何在 Windows 中使用子进程

我正在尝试将结果或函数 runcmd 保存在变量 Result 中.这是我尝试过的:导入子流程 def runcmd(cmd):x = subprocess.Popen(cmd, stdout=subprocess.PIPE)结果 = x.communicate(stdout)返回结果运行命令(“目录") 当我运行这些代码时,我得到了这个结果: Traceback(最近一次调用最后一次):文 ..
发布时间:2022-01-18 15:56:59 Python

如何确定通过 os.system 启动的进程的 pid

我想用一个程序启动几个子进程,即一个模块 foo.py 启动几个 bar.py 实例. 由于我有时必须手动终止进程,因此我需要进程 ID 来执行 kill 命令. 即使整个设置非常“脏",如果进程是通过 os.system 启动的,是否有一种很好的 Python 方法来获取进程的 pid? foo.py: 导入操作系统进口时间os.system("python bar.py \ ..
发布时间:2022-01-18 15:56:44 服务器开发