我需要从另一个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()
答案 0 :(得分:0)
我确实意识到这是一个非常古老的问题,但也许其他人有类似的问题。您可以尝试使用文本文件制作假数据库。由于python可以轻松地写入和读取文本文件,因此非常简单。您可以创建诸如
之类的内容VersionInfo.txt::
__app__ = 'MyApp'
__appName__ = 'My Classic Application'
__version__ = 0.1
__updater__ = 'Kumaresan Lakshmanan'
__updatedOn__ = '2017-08-29'
然后导入文件并在等号上分割每一行。这样,您就拥有了一个可读的文本文件,其中包含所需的所有信息。