从调用文件

时间:2018-01-10 23:04:33

标签: python

假设我有一个名为foo的简单文件:

from logger import Logger


def foo_func():
    foo = Logger()


if __name__ == '__main__':
    foo_func()
正在使用系统参数启动

foo,例如:python foo.py --site=QA

我有另一个名为logger的文件:

import inspect

class Logger:

    def __init__(self):

        frame = inspect.currentframe()
        caller = inspect.getouterframes(frame)[-1][1]

        self.app_name = caller.rsplit('/', 1)[-1].split('.py')[0]

        print self.app_name

它当前的工作方式,self.app_name成功地给了我foo,这是调用文件的名称,但我怎样才能获得参数,{{1}用foo调用foo?

我知道我可以在初始化Logger实例时传递系统参数,但是,我真的想以不同的方式获取它们。这可能吗?

1 个答案:

答案 0 :(得分:0)

导入sys模块并检查sys.argv[]

import sys

if len(sys.argv) > 1: # sys.argv[0] == the script name so we start from index 1
    for arg in sys.argv:
        print arg

并从命令行:

~$ python my_script.py some_arg some_other_arg

输出:

~$ my_script.py
~$ some_arg
~$ some_other_arg