一直以IDE的方式运行代码,最近遇到很多以命令行方式输入代码参数并运行代码,所以做一个简单的总结:
第一种方法:通过ArgumentParser
from argparse import ArgumentParser
def init_args():
"""
init_args: parse args
Args:
None
Returns:
args
Raises:
None
"""
arg_parser = ArgumentParser(description="export data from database")
arg_parser.add_argument("-m", "--method", dest="method", required = True, \
help = "local or hadoop")
arg_parser.add_argument("-i", "--input", dest="input", required = True, \
help = "input file path")
arg_parser.add_argument("-o", "--output", dest="output", help="output file or pcollection")
args = None
try:
args = arg_parser.parse_args()
except Exception as e:
logging.fatal(str(e))
return args
在命令行运行代码时候,输入 Python XX.py -m "you_method_name" -i "you_input_value" -o "you_output_file",举例如下:
返回的args,调用方式:
args.method; args.input; args.output
第二种方式,通过sys.args
import sys
flag = sys.argv[0]
flag1 = sys.argv[1]
flag2 = sys.argv[2]
print flag,flag1,flag2
输出结果:
输出的第一项,是文件名,第二项为 第一个输入参数值,第三项为第二个输入值