В принципе, я хочу написать python script, который выполняет несколько действий, и один из них будет запускать проверку в репозитории с использованием subversion (SVN) и, возможно, преформировать еще пару команд svn. Какой лучший способ сделать это? Это будет работать как crond script.
Как запускать команды SVN из python script?
Ответ 1
Будет ли это работать?
p = subprocess.Popen("svn info svn://xx.xx.xx.xx/project/trunk | grep \"Revision\" | awk '{print $2}'", stdout=subprocess.PIPE, shell=True)
(output, err) = p.communicate()
print "Revision is", output
Ответ 2
Попробуйте pysvn
Предоставляет вам отличный доступ, насколько я его тестировал. Вот несколько примеров: http://pysvn.tigris.org/docs/pysvn_prog_guide.html
Причина, почему я говорю, насколько я ее протестировал, потому что я перешел на Git.. но если я вспомню pysvn (единственная и) лучшая библиотека для svn.
Ответ 3
Взгляните на модуль python xonsh: http://xon.sh/tutorial.html
Он может вызывать команды оболочки плюс конвейер и перенаправление вывода с близким касанием к собственному коду python (вложенному) без необходимости играть с python, чтобы обмениваться бульше и escape-символами.
<сильные > Примеры:
env | uniq | sort | grep PATH
COMMAND1 e>o < input.txt | COMMAND2 > output.txt e>> errors.txt
echo "my home is $HOME"
echo @(7+3)