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

2024-10-01 15:41:21 发布

您现在位置:Python中文网/ 问答频道 /正文

嗨,我是第一次写python:

我有一个现有的获取属性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(文件名,属性名)并在屏幕上打印属性值。你知道吗

为什么要打印值?有没有更好的办法解决这个问题?你知道吗


Tags: pyimport脚本lenif属性utilsys
2条回答

只有直接调用脚本时,才可以运行脚本。将这些行添加到getprop代码的末尾:

if __name__ == "__main__":
    main()

这样main函数只有在您直接运行脚本(而不是导入)时才会被调用。这就是你要找的吗?
一些解释:每个正在运行的脚本都有一个__name__变量,如果您从IDE或控制台(如python script.py)运行脚本,该变量将被设置为"__main__"

改变你的想法获取属性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]);

这将阻止代码在导入时执行。你知道吗

相关问题 更多 >

    热门问题