2016-11-11 67 views
0

我在文件release.conf中有一個變量「app_version」。使用該值,我必須使用urllib從url下載文件。我的Python版本是2.6.6。下面是我到目前爲止有:如何將conf文件中的變量調用到python腳本或文件中?

進口OS 進口的urllib 從urllib的進口urlretrieve 進口tar文件

os.chdir('/tmp/') 
surl = "http://xxxx.com/artifactory/libs-release-local/com/xxxx/xxxx/tgz/xxxx.ear/{}/xxxx.ear-{}.tar.gz".format('app_version') 
slurl = "http://xxxx.com/artifactory/libs-release-local/com/xxxx/xxxx/tgz/xxxx.ear/{}/xxxx.ear-{}.tar.gz".format('app_version') 
surlobj = urllib.urlretrieve(surl, 'xxxx.ear-{}.tar.gz').format('app_version') 
slurlobj = urllib.urlretrieve(slurl, 'xxxx.ear-{}.tar.gz').format('app_version') 
sEAR = 'xxxx.ear-{}.tar.gz'.format('app_version') 
slEAR = 'xxxx.ear-{}.tar.gz'.format('app_version') 
tar = tarfile.open(sEAR) 
tar.extractall() 
tar.close() 
tar1 = tarfile.open(slEAR) 
tar1.extractall() 
tar1.close() 
os.remove(sEAR) 
os.remove(slEAR) 

我知道,我的代碼是不完整的。請幫助我添加缺少的代碼行。

+0

_I很清楚,我的代碼是complete_我認爲你的意思是「不完整」。 –

回答

0

您必須讀取release.conf的內容或對其進行評估,以便變量app_version具有app_version的值。所以app_version成爲一個Python變量。然後,您應該更改所有格式化函數以使用app_version變量。例如:

sEAR = 'xxxx.ear-{}.tar.gz'.format(app_version) 

當APP_VERSION是可變

>>> app_version="4.6." 
>>> 'xxxx.ear-{}.tar.gz'.format(app_version) 
'xxxx.ear-4.6..tar.gz' 

而如果APP_VERSION是一個字符串(Vs的變量)

>>> 'xxxx.ear-{}.tar.gz'.format('app_version') 
'xxxx.ear-app_version.tar.gz' 
0

如果release.conf是像一個標準ConfigParser型文件這個:

[section name] 
item1=foo 
item2=bar 

[another section name] 
item3=xyz 

然後你就可以做到這一點得到文件中的任何物品的價值:

import ConfigParser 

config = ConfigParser.ConfigParser() 
config.read('release.conf') 
app_version = config.get('section', 'item') 

然後用app_version作爲常規變量:

surl = "http://whatever.com/xxxx.ear{0}.tar.gz".format(app_version) 
相關問題