使用命令行参数创建Python shell脚本

时间:2014-11-20 11:25:49

标签: python shell scripting argparse

所以我创建了几个模块:module1.py和module2.py,它们都工作正常。

但是现在我想通过指定相应的选项使用脚本从命令行调用它们。例如:

python launchscript.py -l somefile.txt

python launchscript.py -x

第一个选项应该发送参数并从module1.py执行main(),第二个选项应该从module2.py执行main()

这个启动脚本应该是可扩展的,因为我添加了更多的内部模块,它应该提供内置的命令行帮助。

我是一个蟒蛇初学者,任何帮助都将不胜感激

1 个答案:

答案 0 :(得分:0)

我回应自己:

#!/usr/bin/env python
# -*- coding: utf-8 -*-
'''
Created on Nov 19, 2014


@author: yllanos
'''
# Standard libraries
import sys
import argparse

# External libraries

# Product modules
import module1 as dbs
import module2 as gen

def main(argv):
    parser = argparse.ArgumentParser()
    parser.add_argument('-f', '--file', action='store', dest='file',
                help='Does something with a file')
    parser.add_argument('-x', '--xml', action='store_true', dest='xml_switch',
                help='Does some other thing')
    parser.add_argument('-v', '--version', action='version', version='0.1')
    ar = parser.parse_args()

    if ar.file:
        dbs.main(argv[1])
    else:
        None

    if ar.xml_switch:
        gen.main()
    else:
        None

if __name__ == '__main__':
    if len(sys.argv[1:]) == 0:
        print "Usage: ebiller command [OPTION]"
        exit
    else:
        main(sys.argv[1:])