我在release.conf文件中有一个变量“app_version”。使用该值,我必须使用urllib从URL下载文件。我的python版本是2.6.6。以下是我到目前为止:
导入操作系统 import urllib 来自urllib import urlretrieve import tarfile
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 :(得分: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是一个字符串(vs一个变量)
>>> 'xxxx.ear-{}.tar.gz'.format('app_version')
'xxxx.ear-app_version.tar.gz'
答案 1 :(得分: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)