wget缺少带有shlex和子流程的url



我很难理解为什么会出现wget: missing URL错误:

import shlex
import subprocess
copy_command = "wget -O - 'http://example.com/somepath/somefile.txt?someparam=test' | sshpass -p pass ssh user@localhost -p 2222 "cat - > /upload/somefile.txt""
cmd = shlex.split(copy_command, posix=False)
with subprocess.Popen(
cmd, stdin=subprocess.PIPE, stdout=subprocess.PIPE, shell=True
) as proc:
output, error = proc.communicate()

我在这里错过了什么?如果我只是直接给子流程copy_command字符串,那么它就可以正常工作。

要设置管道,需要父进程生成所有涉及的程序,并将一个程序的stdio连接到另一个程序。

子流程的Python文档解释了如何做到这一点。

它使用字符串参数和shell=True,因为这样它只需将命令行交给子shell,而该shell可以处理所有这些细节。

相关内容

  • 没有找到相关文章

最新更新