从另一个py调用py脚本打印该值

时间:2016-03-30 12:14:49

标签: python

您好我是第一次写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)之类的方法,并在屏幕上打印属性的值。

为什么要打印这个值?有没有更好的方法来解决这个问题?

2 个答案:

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

这将阻止代码在导入时执行。