说我有一个config.py
来管理命令行参数
parser = argparse.ArgumentParser()
parser.add_argument('common_argument')
args = parser.parse_args()
input_common = args. common_argument
此文件是从我在项目中执行的许多其他脚本中导入的。但是,其中有一些脚本需要其他参数,例如special_file.py
。如何添加这些参数?
替代1
在config.py
中,我确定了要导入脚本以添加其他参数的脚本。假设有一个像__importing_file__
这样的变量,那么我可以做
if __importing_file__ == 'special_file':
parser.add_argument('special_argument')
但是,我找不到如何识别当前正在运行的脚本。有可能吗?
替代2
在我的special_file.py
中,我可以简单地添加另一个参数并再次解析,即
from config import *
parser.add_argument('special_argument')
args = parser.parse_args()
input_special = args.special_argument
但是,python无法识别special_argument
。
是否有解决此问题的方法?
答案 0 :(得分:0)
您要寻找的是__file__
。但是,不能会误认为sys.argv[0]
。
sys.argv[0]
给出了模块的入口点,即应用程序的起始位置。 如果,这是一个 django 应用,sys.argv[0]
会给manage.py
,而__file__
会返回绝对当前正在运行的脚本的路径。