从另一个python模块更新python模块变量

时间:2017-09-16 03:00:38

标签: python

我需要从另一个python模块更新python模块的变量值。 值需要永久更新到模块,而不仅仅是运行时。 所以需要更新模块文件。我该怎么做?

VersionInfo.py 文件包含一些默认值的变量。 执行另一个python文件 ReleaseVersion.py 时,应该更新此文件。

VersionInfo.py

__app__ = 'MyApp'
__appName__ = 'My Classic Application'
__version__ = 0.1
__updater__ = 'Kumaresan Lakshmanan'
__updatedOn__ = '2017-08-29'

#Other Lookups
versionStr = "v%s" % __version__
versionInfo ='%s (%s)' % (versionStr, __updatedOn__)
loggerName = __app__
stdLogFile = __app__ + '_log.txt'
errorLogFile = __app__ + '_error.txt'

ReleaseVersion.py

import VersionInfo

newVersion = VersionInfo.__version__
newVersion += .1
updatedOn = currentDate()
updater = 'Lakshmanan'

VersionInfo.__version__ = newVersion
VersionInfo.__updater__ = updater
VersionInfo.__updatedOn__ = getCurrentDate()

def updateVersionInfo():
    # i m planning to go by followin step, need some better logic...
    # 1. open versioninfo.py file into a str...
    # 2. in str, search for old values and replace with new values
    # 3. write back the str to versioninfo.py file
    # Any other better logic i can do?

updateVersionInfo()

1 个答案:

答案 0 :(得分:0)

我确实意识到这是一个非常古老的问题,但也许其他人有类似的问题。您可以尝试使用文本文件制作假数据库。由于python可以轻松地写入和读取文本文件,因此非常简单。您可以创建诸如

之类的内容
VersionInfo.txt::
__app__ = 'MyApp'
__appName__ = 'My Classic Application'
__version__ = 0.1
__updater__ = 'Kumaresan Lakshmanan'
__updatedOn__ = '2017-08-29'

然后导入文件并在等号上分割每一行。这样,您就拥有了一个可读的文本文件,其中包含所需的所有信息。