Что эквивалентно в python этой строке кода в perl $ conf {svnlook} log --revision $ rev $ repo - PullRequest
1 голос
/ 14 апреля 2011

Что эквивалентно в python этой строке кода в perl

$conf{svnlook} log --revision $rev $repo

Я ищу в python что-то более изящное, чем это ...

Ответы [ 3 ]

4 голосов
/ 14 апреля 2011

Это не совсем допустимый Perl.Вы уверены, что это не так?

my $log = `$conf{svnlook} log --revision $rev $repo`;

Это вызывает svnlook , внешнюю программу, не являющуюся частью Perl.Вы можете сделать то же самое в Python .

3 голосов
/ 14 апреля 2011
from subprocess import call
call([conf['svnlook'], 'log', '--revision', rev, repo])
3 голосов
/ 14 апреля 2011

Если быть точным, то, что у вас есть, это не команда perl, а отформатированная строка ... Я предполагаю, что вы отправляете строковую команду в оболочку ... для этого в python вы можете сделать это. ..

# assign conf as a dict()
# assign rev and repo as variables
import os
os.system('%s log --revision %s %s' % (conf['svnlook'], rev, repo))

EDIT Чтобы ответить на ваш вопрос о форматировании строк, есть строки шаблонов python и строки формата python ... Я продемонстрирую строки формата в оболочке python ...

>>> 'Coordinates: {latitude}, {longitude}'.format(latitude='37.24N', longitude='-115.81W')
'Coordinates: 37.24N, -115.81W'
>>>

Однако это все же более многословно, чем perl

...