python系统调用

时间:2009-09-22 22:05:16

标签: python shell

使用此命令,我只获得名为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上,我得到了所有文件......

2 个答案:

答案 0 :(得分:4)

尝试将subprocess.callshell=True一起使用,它将更密切地模拟os.system:

subprocess.call("...", shell=True)

答案 1 :(得分:1)

如果我没有错误,Python确实有一个rsync模块,为什么不使用它而不是调用。这将使您的应用程序更易于管理。