2016-11-11 1 views
0

У меня есть переменная «app_version» в файле release.conf. Используя это значение, я должен загрузить файл с URL-адреса, используя urllib. Моя версия python - 2.6.6. Ниже то, что я до сих пор:Как вызвать переменную в файле conf в скрипт или файл python?

импорт Os импорта URLLIB от импорта URLLIB urlretrieve импорта файла обработан

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, либо eval его, чтобы переменная 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 является строка (против переменной)

>>> '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) 
Смежные вопросы