subprocess相关内容

Unicode 文件名到 python subprocess.call()

我正在尝试使用 unicode 文件名运行 subprocess.call(),这是简化的问题: n = u'c:\\windows\\notepad.exe 'f = u'c:\\temp\\nèw.txt'subprocess.call(n + f) 这引发了著名的错误: UnicodeEncodeError: 'ascii' 编解码器无法编码字符 u'\xe8' 编码为 ut ..
发布时间:2022-01-18 15:42:20 Python

是否有 subprocess.call 的安静版本?

是否有 subprocess.call 的变体可以在不打印到标准输出的情况下运行命令,或者有一种方法可以阻止它的标准输出消息? 解决方案 是的.将其 stdout 重定向到 /dev/null. process = subprocess.call(["my", "command"], stdout=open(os.devnull, 'wb')) ..
发布时间:2022-01-18 15:41:54 Python

包装子进程的标准输出/标准错误

我想捕获并显示我通过 Python 的子进程调用的进程的输出. 我以为我可以将我的类文件对象作为命名参数 stdout 和 stderr 传递 我可以看到它访问 fileno 属性 - 所以它正在对对象做一些事情.但是,永远不会调用 write() 方法.我的方法是完全关闭还是我只是错过了什么? 类进程(对象):类 StreamWrapper(对象):def __init__(自我, ..
发布时间:2022-01-18 15:41:18 Python

为什么 python.subprocess 在 proc.communicate() 之后挂起?

我有一个名为 my_own_exe 的交互式程序.首先,它打印出alive,然后你输入S\n,然后它再次打印出alive.最后输入L\n.它进行一些处理并退出. 但是,当我从以下 python 脚本调用它时,程序在打印出第一个“活着"后似乎挂起. 谁能告诉我为什么会这样? //看完后续(谢谢大家),我修改代码如下: 导入子流程进口时间base_command = "./AO_F ..
发布时间:2022-01-18 15:41:09 Python

Python:子进程并运行具有多个参数的 bash 脚本

如何使用 subprocess 模块运行 bash 脚本,我必须为其提供几个参数? 这是我目前正在使用的: subprocess.Popen(['/my/file/path/programname.sh', 'arg1 arg2 %s' % arg3], \壳=真) bash 脚本似乎没有接受任何参数.非常感谢任何见解! 解决方案 将参数作为列表传递,参见 文档中的第一个代码示例 ..
发布时间:2022-01-18 15:40:52 Python

OSError: [Errno 8] 执行格式错误

我很难解析 subprocess.Popen 的参数.我正在尝试在我的 Unix 服务器上执行脚本.在 shell 提示符下运行时的脚本语法如下:/usr/local/bin/script 主机名 = -p 长列表.无论我如何尝试,脚本都没有在 subprocess.Popen 中运行 “="前后的空格为必填项. 导入子流程Out = subprocess.Popen(['/us ..
发布时间:2022-01-18 15:40:43 Python

持久的python子进程

有没有办法在python“持久"中进行子进程调用?我正在调用一个需要一段时间才能多次加载的程序.因此,如果我可以让该程序保持打开状态并与其通信而不杀死它,那就太好了. 我的python脚本的卡通版是这样的: 文本集合中的文本:myprocess = subprocess.Popen(["myexecutable"],标准输入 = subprocess.PIPE,标准输出 = subproc ..
发布时间:2022-01-18 15:40:22 Python

如何从 subprocess.Popen.stdout 读取所有可用数据(非阻塞)?

我需要一种方法来读取 Popen 创建的流中所有当前可用的字符,或者找出缓冲区中剩余的字符数. 背景:我想用 Python 远程控制一个交互式应用程序.到目前为止,我使用 Popen 创建了一个新的子进程: process=subprocess.Popen(["python"],shell=True,stdin=subprocess.PIPE,stdout=subprocess.PIPE, ..
发布时间:2022-01-18 15:40:15 Python

如何读取子进程标准输出的第一个字节,然后在 Python 中丢弃其余字节?

我想读取子进程的标准输出的第一个字节,以了解它已经开始运行.之后我想丢弃所有进一步的输出,这样我就不必担心缓冲区了. 最好的方法是什么? 澄清:我希望子进程继续与我的程序一起运行,我不想等待它终止或类似的事情.理想情况下,有一些简单的方法可以做到这一点,而无需使用 threading、forking 或 multiprocessing. 如果我忽略输出流,或者 .close() ..
发布时间:2022-01-18 15:40:06 Python

escapeshellarg 和 escapeshellcmd 有什么区别?

PHP 有 2 个密切相关的函数,escapeshellarg() 和 escapeshellcmd().它们似乎都在做类似的事情,即帮助使字符串在 system()/exec()/etc 中更安全地使用. 我应该使用哪一个?我只是希望能够接受一些用户输入并在其上运行命令,而不是让一切都崩溃.如果 PHP 有一个 exec-type-function,它接受一个字符串数组(如 argv),它 ..
发布时间:2022-01-18 15:39:21 PHP

Popen 错误:[Errno 2] 没有这样的文件或目录

我有一些自定义命令. # 有效subprocess.Popen(['python'], stdout=subprocess.PIPE) 但如果我有自己的系统命令,例如 deactivate,我会收到该错误 Traceback(最近一次调用最后一次):文件“runner2.py",第 21 行,在 主要的()文件“runner2.py",第 18 行,在 mainsubproc ..
发布时间:2022-01-18 15:39:11 Python

合并 Python 脚本的子进程的 stdout 和 stderr,同时保持它们可区分

我想将 python 脚本的子进程的标准输出和标准输入定向到同一个文件中.我不知道如何使两个来源的线条可区分?(例如,在 stderr 中的行前加上感叹号.) 在我的特殊情况下,不需要实时监控子进程,正在执行的 Python 脚本可以等待其执行结束. 解决方案 tsk = subprocess.Popen(args,stdout=subprocess.PIPE,stderr=subp ..
发布时间:2022-01-18 15:38:55 Python

Python 子进程 Popen:为什么会出现“ls *.txt"?不行?

我正在查看这个问题. 就我而言,我想做一个: 导入子流程p = subprocess.Popen(['ls', 'folder/*.txt'], stdout=subprocess.PIPE,标准错误=子进程.PIPE)出,错误= p.communicate() 现在我可以在命令行上检查执行“ls 文件夹/*.txt"是否有效,因为该文件夹有许多 .txt 文件. 但在 Pytho ..
发布时间:2022-01-18 15:38:44 Python

用于 Windows 的 python os.mkfifo()

短版(如果你能回答短版它对我有用,其余的主要是为了其他有类似任务的人的利益): 在 Windows 的 python 中,我想创建 2 个文件对象,附加到同一个文件(它不必是硬盘驱动器上的实际文件),一个用于读取,一个用于写入,这样如果读取端尝试读取它永远不会得到 EOF(它只会阻塞直到写入某些内容).我认为在 linux os.mkfifo() 中可以完成这项工作,但在 Windows 中 ..
发布时间:2022-01-18 15:38:36 Python

在 subprocess.call 中使用大于运算符

我想做的很简单.我想使用 python 的 subprocess 模块调用以下命令. cat/path/to/file_A >文件_B 该命令简单地工作并将file_A的内容复制到当前工作目录中的file_B.但是,当我尝试在脚本中使用 subprocess 模块调用此命令时,它会出错.以下是我正在做的事情: 导入子流程subprocess.call(["cat", "/path/to/fi ..
发布时间:2022-01-18 15:38:28 Python