从Python运行Rsync

Mar*_*cus 19 python rsync curl

我需要从Python运行rsync命令.这是可能的,如果是这样,我该怎么办?

rsync -Ccavz --delete DJStatic username@website
Run Code Online (Sandbox Code Playgroud)

回答评论

我需要用

rsync -Ccavz --delete DJStatic username@website
Run Code Online (Sandbox Code Playgroud)

phi*_*hem 19

您可以使用以下代码段从python调用子进程

import subprocess
subprocess.call(["ls", "-l"])
Run Code Online (Sandbox Code Playgroud)

在你的情况下,它会是这样的

subprocess.call(["rsync", "-Ccavz", "--delete","DJStatic", "username@website"])
Run Code Online (Sandbox Code Playgroud)

有关详细信息,请参见此处

  • `subprocess.call("rsync -Ccavz --delete DJStatic username @ website".split())`输入更具可读性和实用性. (7认同)
  • @jolvi,如果您的参数都不带空格... (5认同)
  • 使用 `shlex.split(s)` 而不是常规的 `s.split()` 来像普通 (POSIX) shell 那样分割参数。 (4认同)
  • 不应使用 @jolvi 的版本(将命令作为字符串传递)!将参数作为字符串列表传递。当您无法弄清楚为什么 shell 命令由于某个变量中的某些引号或空格而没有执行您期望的操作时,它将为您节省大量的调试时间。为了节省 2-3 秒的打字时间而付出的代价是不值得的 (2认同)