2015-09-04 88 views
1

我正在写svn的precommit钩子,我必须运行“svnlook日志”命令,捕获并解析其输出。python subprocess popen与参数

我被困在这一点上:

svnlookCmd = ['/appl/atlad00/CollabNetSubversionEdge-5.0.1/csvn/bin/svnlook', 'log', repoPath, '-t ', transID] 
sys.stderr.write('svnlookCom = ' + str(svnlookCmd) + '\n') 
svnlook = Popen(svnlookCmd, stdout=PIPE) 
commitMsg = svnlook.stdout.read() 
sys.stderr.write ("\n commit message is: : \n" + commitMsg + "\n") 

这将运行svnlook的,但抱怨svnlook的本身会抱怨说,“太多的参数给出”这是不正确的,如果你检查svnlook的帮助

所以我想我不得不把“svnlook的日志”这样在一起:

['/appl/atlad00/CollabNetSubversionEdge-5.0.1/csvn/bin/svnlook log', repoPath, '-t ', transID] 

但这不会运行svn看都让我“OSERROR:[错误2]没有这样的文件或目录”。这是有意义的,因为'/appl/atlad00/CollabNetSubversionEdge-5.0.1/csvn/bin/svnlook log'不存在。

任何想法,我在这里失踪?这是woth提的是,这是一个很长的时间,因为我已经与Python,所以我可能会丢失一些非常基本的工作...

S.

回答

1

发现了问题:

它的空间中 - -t选项:

'-t ' 

应该

'-t'