您好我是第一次写python:
我有一个现有的getprop.py脚本,它加载属性文件并打印给定属性的值:
import sys
import util
if len(sys.argv) < 3:
print "Error! Usage is: getprop.py [propfile] [propname]"
sys.exit(1)
props = util.loadprops(sys.argv[1])
if sys.argv[2] in props:
print props(sys.argv[2]);
现在我需要在另一个py脚本中获取属性的值,所以我修改了上面的脚本,这样我就不会打扰它的功能,我可以在另一个脚本中使用它:
import sys
import util
def getpropvalue(propfile, propname):
props = util.loadprops(propfile)
if propname in props:
return props[propname]
if len(sys.argv) < 3:
print "Error! Usage is: getprop.py [propfile] [propname]"
sys.exit(1)
else:
print getpropvalue(sys.argv[1], sys.argv[2]);
然后在其他脚本中我导入getprop并调用getprop.getpropvalue(FILE_NAME,PROP_NAME)之类的方法,并在屏幕上打印属性的值。
为什么要打印这个值?有没有更好的方法来解决这个问题?
答案 0 :(得分:3)
只有在直接调用脚本时,才能运行该脚本。将这些行添加到getprop
代码的末尾:
if __name__ == "__main__":
main()
这样,只有在直接运行脚本(而不是导入)时才会调用main
函数。这就是你要找的东西吗?
一些解释:如果您从IDE或控制台(如__name__
"__main__"
变量将设置为python script.py
答案 1 :(得分:2)
将你的getprop.py改为:
import sys
import util
def getpropvalue(propfile, propname):
props = util.loadprops(propfile)
if propname in props:
return props[propname]
if __name__ == '__main__':
if len(sys.argv) < 3:
print "Error! Usage is: getprop.py [propfile] [propname]"
sys.exit(1)
else:
print getpropvalue(sys.argv[1], sys.argv[2]);
这将阻止代码在导入时执行。