使用此命令,我只获得名为OUTPUT的文件(实际上我还有更多--include标志) - 所以按预期工作:
os.system("rsync --rsh=ssh -arvuP --include='OUTPUT' --exclude='*' user@host:there/ ./here")
在这种情况下,将忽略--include和--exclude标志:
subprocess.call("rsync --rsh=ssh -arvuP --include='OUTPUT' --exclude='*' user@host:there/ ./here".split())
我想知道我做错了什么?非常感谢!
编辑:对不起,这是在OS X Leopard上,我得到了所有文件......
答案 0 :(得分:4)
尝试将subprocess.call
与shell=True
一起使用,它将更密切地模拟os.system:
subprocess.call("...", shell=True)
答案 1 :(得分:1)
如果我没有错误,Python确实有一个rsync模块,为什么不使用它而不是调用。这将使您的应用程序更易于管理。