gpt4 book ai didi

python - 为什么这个 subprocess.check_call() 不起作用?

转载 作者:太空狗 更新时间:2023-10-29 11:14:39 33 4
gpt4 key购买 nike

我在 Ubuntu 12 上使用 Python 2.7 运行这些片段。

import subprocess
args = ['rsync', '--rsh="ssh"', '/tmp/a/', '127.0.0.1:/tmp/b/']
subprocess.check_call(args)

失败

import subprocess
args = ['rsync', '--rsh="ssh"', '/tmp/a/', '127.0.0.1:/tmp/b/']
call_string = ' '.join(args)
subprocess.check_call(call_string)

作品

第一个代码片段导致 rsync 获取无效的命令行。使用此选项的简短版本 (-e) 没有任何区别。如果我删除 --rsh 部分,它工作正常。

使用 shell=True 没有任何区别。从“ssh”中删除引号没有任何区别,我想保留引号以便将参数传递给 ssh。

有什么问题?

最佳答案

去掉ssh两边的引号; shell 通常会解析这些并传递参数而不引号:

import subprocess
args = ['rsync', '--rsh=ssh', '/tmp/a/', '127.0.0.1:/tmp/b/']
subprocess.check_call(args)

关于python - 为什么这个 subprocess.check_call() 不起作用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20577375/

33 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com