popen相关内容

为什么向 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

将 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

如何使用子进程模块与 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

我可以在 Python 中将 io.BytesIO() 流通过管道传输到 subprocess.popen() 吗?

我正在尝试使用 subprocess.popen() 将 io.BytesIO() 字节流管道 到一个单独的程序,但我不知道如何或是否有可能.文档和示例都是关于文本和换行符的. 当我做出这样的事情时: 导入io从子流程导入 *流 = io.BytesIO()someStreamCreatingProcess(流)命令 = ['somecommand', 'some', 'arguments ..
发布时间:2022-01-18 15:56:26 Python

python:非阻塞子进程,检查标准输出

好的,我要解决的问题是: 我需要运行一个设置了一些标志的程序,检查其进度并向服务器报告.所以我需要我的脚本来避免在程序执行时阻塞,但我还需要能够读取输出.不幸的是,我认为 Popen 提供的任何方法都不会在不阻塞的情况下读取输出.我尝试了以下,这有点hack-y(我们是否允许从两个不同的对象读取和写入同一个文件?) 导入时间导入子流程从子流程导入 *使用 open("stdout.txt" ..
发布时间:2022-01-18 15:54:09 Python

如何在其默认程序中启动文件,然后在脚本完成时关闭它?

总结 我有 wxPython GUI,它允许用户打开文件进行查看.目前我使用 os.startfile() 执行此操作.但是,我了解到这不是最好的方法,所以我正在寻求改进.startfile() 的主要缺点是文件一旦启动,我就无法控制它.这意味着用户可以将文件保持打开状态,因此其他用户将无法使用该文件. 我在寻找什么 在我的 GUI 中,可以有子窗口.我通过将 GUI 对象存储在 ..
发布时间:2022-01-18 15:53:25 Python

Python 子进程 Popen.communicate() 等价于 Popen.stdout.read()?

非常具体的问题(我希望):以下三个代码有什么区别? (我希望它只是第一个不等待子进程完成,而第二个和第三个会这样做.但我需要确定这是 only 的区别...) 我也欢迎其他评论/建议(尽管我已经很清楚 shell=True 的危险和跨平台限制) 请注意,我已经阅读了 Python 子进程交互,为什么我的进程可以使用 Popen.communicate,而不是 Popen.stdo ..
发布时间:2022-01-18 15:51:37 Python

Python ClearCase 下载 Vobs Popen 密码 BASH 程序 Sketchy

我昨天编写了这个程序,除了由 CRON 运行时,它实际上可以工作.今天,我运行了相同的脚本,但它不起作用.该脚本将在没有任何 Tracebacks 错误的情况下运行,并且它将从 ClearCase 视图复制顶部文件夹 (vob),但不会复制目标文件夹下的文件夹和文件中的实际重要数据. 这是我的 Python 脚本. def gainCode(view="My_VIEW", folder=" ..
发布时间:2022-01-18 15:50:23 Python

subprocess.Popen.stdout - 实时读取标准输出(再次)

同样的问题. 原因是 - 阅读以下内容后我仍然无法使其工作: 在Python中实时截取另一个进程的stdout 在子进程运行时拦截其标准输出 如何从 subprocess.Popen 在 python (2.5) 中获取“实时"信息 从子进程中实时捕获标准输出 我的情况是我有一个用 C 编写的控制台应用程序,让我们以循环中的代码为例: tmp = 0.0;printf("\n ..
发布时间:2022-01-18 15:47:17 Python

如何使用python将本地文件推送到github?(或通过 Python 发布提交)

有哪些选项可以将文件从 python 提交和推送到 github? 以下是我认为应该可行的三种方法,因此按顺序尝试: 使用pygithub:(Github的python API)发送将请求推送到我的存储库.失败,因为我在 API 中找不到推送函数.我可以看到编辑文件,但是当我打算经常替换文件时,这无济于事. 在 python 子进程 (HTTPS) 的命令行中使用 git pus ..
发布时间:2022-01-18 15:45:51 Python

新手 python 子进程:“写入错误:管道损坏"

感谢以下有用的建议: 所以当我修复它时似乎是固定的 将命令分离到对 Popen 的单独调用中 stderr=subprocess.PIPE 作为每个 Popen 链的参数. 新代码: 导入子流程进口shlex导入日志def run_shell_commands(cmds):""" 运行命令并返回上次调用 subprocess.Popen 的输出.有关用法,请参阅下面的测试." ..
发布时间:2022-01-18 15:45:22 Python

使用 subprocess.Popen 时将大量数据传输到标准输入

我有点难以理解解决这个简单问题的 python 方法是什么. 我的问题很简单.如果您使用以下代码,它将挂起.这在子流程模块文档中有详细记录. 导入子流程proc = subprocess.Popen(['cat','-'],标准输入=子进程.PIPE,标准输出=子进程.PIPE,)对于我在范围内(100000):proc.stdin.write('%d\n' % i)输出 = proc.c ..
发布时间:2022-01-18 15:45:07 Python

Python,Popen 和 select - 等待进程终止或超时

我使用以下方式运行子进程: p = subprocess.Popen("subprocess",标准输出=子进程.PIPE,stderr=subprocess.PIPE,标准输入=子进程.PIPE) 此子进程可以在 stderr 上出现错误时立即退出,或者继续运行.我想检测其中任何一种情况 - 后者需要等待几秒钟. 我试过了: SECONDS_TO_WAIT = 10选择.选择([ ..
发布时间:2022-01-18 15:44:57 Python

为什么 Popen.communicate() 返回 b'hi\n' 而不是 'hi'?

有人能解释一下为什么我想要的结果“hi"前面有一个字母“b",后面有一个换行符吗? 我正在使用 Python 3.3 >>>导入子流程>>>print(subprocess.Popen("echo hi", shell=True,stdout=subprocess.PIPE).communicate()[0])嗨\n' 如果我使用 python 2.7 运行它,则不会出现这个额外的“b" ..
发布时间:2022-01-18 15:44:32 Python

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

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

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