识别当前正在运行的脚本

时间:2019-03-15 14:32:16

标签: python argparse

说我有一个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

是否有解决此问题的方法?

1 个答案:

答案 0 :(得分:0)

您要寻找的是__file__。但是,不能会误认为sys.argv[0]

sys.argv[0]给出了模块的入口点,即应用程序的起始位置。 如果,这是一个 django 应用,sys.argv[0]会给manage.py,而__file__会返回绝对当前正在运行的脚本的路径。