使用子流程.Popen使用CVS存储库?

2024-04-19 12:28:57 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在编写一个python脚本来向CVS存储库添加一些功能。我想用子流程.Popen模块通过windows命令行运行cvs签出,例如

subprocess.Popen('cvs -Q co -r %tag% %directory%')

其中tag和directory只是占位符(脚本接受用户输入)。我已经设置了CVSROOT,但是不管出于什么原因,我无法让脚本签出所需的cvs模块。直接在命令行中运行同一个命令(在引号内)可以正常工作,签出目录。在


Tags: 模块命令行用户功能脚本windowstag流程
2条回答

好吧,如果你想要和壳里一样的行为,你应该这么说:

subprocess.Popen('cvs -Q co -r %tag% %directory%', shell=True)

但总的来说,这样做比较好

^{pr2}$

相反。在

参数未传递给子流程.Popen作为一根绳子。您需要在列表中传递命令和参数

subprocess.Popen(['cvs', '-Q', 'co', '-r', '%tag%', '%directory%'])

或者另一种选择

^{pr2}$

相关问题 更多 >