【发布时间】:2015-08-10 18:30:17
【问题描述】:
我正在尝试使用以下代码通过 python 进行 Globus 辅助文件传输:
get_task_id = subprocess.Popen(['ssh','gcw8@cli.globusonline.org','"transfer','-s','3','--','ep1#path/to/dir/','ep2#end/point/','-r"'],stdout=subprocess.PIPE)
产生错误:
Command 'transfer -s 3 -- ep1#path/to/dir/ ep2#end/point -r' not found. Type 'help' for help.
考虑到我可以成功运行,这很奇怪:
ssh gcw8@cli.globusonline.org "transfer -s 3 -- ep1#path/to/dir/ ep2#end/point/ -r"
我理解为在功能上等同于上面的 python 代码。我意识到 Globus 传输是深奥的,大多数人不会熟悉给出的命令,所以我想强调一下,我的问题更多是关于为什么我的 python 代码产生与我的 bash 代码不同的输出,因为它们应该是做同样的事情。
【问题讨论】:
-
一些 Globus 用户最近偶然发现了这一点,所以我想确保他们知道我们不鼓励使用 subprocess + CLI 来编写 python 脚本。在过去的一年里,我们一直在为此扩展我们的python SDK。
标签: python bash subprocess popen