2011-04-14 15 views
1

在Python中相當於什麼是這行代碼在Perl

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

我是在python中尋找像這樣整潔的東西...

+1

這是一個perl命令嗎? – eumiro 2011-04-14 09:49:59

+0

其在perl腳本中使用的一行... – Jas 2011-04-14 09:53:35

+2

是否在某些反引號或system()調用中?它看起來像你在調用一個外部程序,它的名字存儲在'$ conf {svnlook}'哈希中。 – eumiro 2011-04-14 09:55:00

回答

3

準確地說,你有什麼不是perl命令,這是一個格式化的字符串...我假設你發送一個字符串命令到shell ...在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)) 

編輯 要獲得關於字符串格式化的問題,也有python template stringspython format strings ...我將演示在Python殼格式字符串...

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

然而,這仍然比perl更詳細

+0

這看起來更好。外部調用,而不是perl命令。 – eumiro 2011-04-14 09:55:58

+0

我必須說,在Perl中它看起來更好,因爲它們可以在字符串本身中包含$ rev $ repo我希望我在python中有這個!沒有那樣的事? – Jas 2011-04-14 10:31:48

+0

@Jason,我編輯了一個響應... – 2011-04-14 10:51:57

4

這不是真正有效的Perl。你確定它不是這樣嗎? Perl中的

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

這是調用svnlook程序,外部程序不一部分。你可以做the same thing in Python

3
from subprocess import call 
call([conf['svnlook'], 'log', '--revision', rev, repo])