我需要从Python运行一个rsync命令,这是否可行?如果可行,我该怎么做?
rsync -Ccavz --delete DJStatic username@website
我需要从Python运行一个rsync命令,这是否可行?如果可行,我该怎么做?
rsync -Ccavz --delete DJStatic username@website
以下片段展示了如何在Python中调用子进程
import subprocess
subprocess.call(["ls", "-l"])
在你的情况下,应该是这样的
subprocess.call(["rsync", "-Ccavz", "--delete","DJStatic", "username@website"])
更多详细信息请看这里。
subprocess.call("rsync -Ccavz --delete DJStatic username@website".split())
的写法更易读,打起来也更实用。 - jolvishlex.split(s)
代替常规的s.split()
来像正常(POSIX)shell一样拆分参数。 - Chris L. Barnesshlex.split()
代替split()
进行修复,正如Chris L. Barnes所提到的。我认为,如果您谨慎使用,那么使用该解决方案是可以的。除非...这会引起其他具体问题吗? - jvriesemshlex.split
可以解决这个问题,只要您确保在将命令作为字符串传递时始终使用它。 - Brandon