如何将conf文件中的变量调用到python脚本或文件中?

时间:2016-11-11 21:50:44

标签: python python-2.6

我在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)

我知道我的代码不完整。请帮助我添加缺少的代码行。

2 个答案:

答案 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)