使用Python脚本执行SVN命令
我想使用Python执行以下SVN命令:使用Python脚本执行SVN命令,python,python-2.7,svn,Python,Python 2.7,Svn,我想使用Python执行以下SVN命令: svn log-v--xml--stop on copy--no auth cache--trust server cert--non interactive--username--password 我试过这样做: cmd = 'svn log -v --xml --stop-on-copy --no-auth-cache --trust-server-cert --non-interactive --username <user> --pa
svn log-v--xml--stop on copy--no auth cache--trust server cert--non interactive--username--password
我试过这样做:
cmd = 'svn log -v --xml --stop-on-copy --no-auth-cache --trust-server-cert --non-interactive --username <user> --password <password> <repo>'
args = shlex.split(cmd)
pro = subprocess.Popen(
args,
shell=True,
stdout=subprocess.PIPE,
stderr=subprocess.PIPE)
output, err = pro.communicate()
cmd='svn log-v--xml--stop on copy--no auth cache--trust server cert--non interactive--username--password'
args=shlex.split(cmd)
pro=子进程.Popen(
args,
shell=True,
stdout=子流程.PIPE,
stderr=子流程(管道)
输出,err=pro.communicate()
如果执行SVN,它将返回一个XML。
如果执行Python,则输出和err为空
有什么想法吗?您是否尝试自己构建args列表
Popen
可能会使用shlex.split
的顺序,因为log
可能需要作为主命令(svn log
)的一部分,而不是作为参数。此外,shlex.split()
在这里不是真的必要,cmd.split()
就足够了。@RafaelAguilar,我尝试过,但运气不好。@LucasBeier返回值是多少,streams=pro.communicate()
,ret\u code=pro.returncode
试试这个,然后打印返回值。