假设我有一个名为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实例时传递系统参数,但是,我真的想以不同的方式获取它们。这可能吗?
答案 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