我试图从不同的文件类型中获取变量并将其导入Python脚本。该文件是version.mk,它有一个名为VARIABLE_ID的变量。导入模块不能正常工作,有没有办法从其他文件类型调用变量?
感谢您的帮助
import os
from version import VERSION_ID
def versionid:
print VERSION_ID
这是不起作用的代码。
版本ID为0.0.2格式。当我运行以下代码时,它表示数字中存在语法错误。
我已经读过distutils有一个版本编号约定。我不确定如何使用,有人听过或知道这是如何工作的吗?
是否有办法在此文件中进行合作,当文件中的注释干扰文件时。 read()只能读取version_id而不是评论,谢谢
VERSION_ID=map(int,re.match("VERSION_ID\s*=\s*(\S+)",open("version.mk").read()).group(1).split("."))
答案 0 :(得分:1)
如果你确定version.mk
是有效的python文件,并且没有任何损害代码,你可以执行它。
>>> exec(open("version.mk"))
>>> print VERSION_ID
1
更新:因为OP添加的VERSION_ID不是有效的蟒蛇号码
version.mk
#version no is here
VERSION_ID=0.0.2
#some more info here
....
-
>>> import re
>>> VERSION_ID=map(int,re.search("VERSION_ID\s*=\s*(\S+)",open("version.mk").read()).group(1).split("."))
>>> VERSION_ID
[0, 0, 2]
答案 1 :(得分:1)
如果您的文件不是Python代码,则无法将其导入,就像它一样。
您需要手动打开文件并解析设置。特别是如果包含该数字的行类似于
VERSION_ID = 0.0.2
因为这永远不会是有效的Python(没有看起来像这样的文字)。
这可能是regular expression有意义的情况,例如r'VERSION_ID\s*=\s*([0-9.]+)
可能有效。