Python 代码能够以多种形式运行,如在 JupyterLab 中交互式方式、在 PyCharm 中以工程代码形式运行。有时,我们还需要在终端或CMD 以命令行的形式运行。这些运行方式都能够实现 Python 代码的运行。对于需要自定义参数的代码,在 JupyterLab 中我们可以把参数写入单元格内,在 PyCharm 中我们可以将参数写入配置文件内,那么在终端或CMD运行 Python 代码时,如何传入参数呢,下面介绍两种方法。
利用 sys 包
编写名为 shellSysArgv.py 的模块
| 12
 3
 4
 5
 6
 7
 8
 9
 10
 11
 12
 13
 
 | import sys
 
 
 def main(x, y):
 print(f"x={x}, y={y}")
 print("done!")
 
 
 if __name__=="__main__":
 x = sys.argv[1]
 y = sys.argv[2]
 main(x, y)
 
 | 
在 shell 中调用
| 12
 3
 
 | $ python shellSysArgv.py 1 2        x=1, y=2
 done!
 
 | 
利用 argparse 包
编写名为 shellArgParse.py 的模块
| 12
 3
 4
 5
 6
 7
 8
 9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 
 | import argparse
 
 
 def main(x_data, y_data):
 print(f"x={x_data}, y={y_data}")
 print("done!")
 
 
 if __name__=="__main__":
 ap = argparse.ArgumentParser()
 ap.add_argument('-x', '--x_data', required=True, type=str, default='1', help='x axis')
 ap.add_argument('-y', '--y_data', required=True, type=str, default='2', help='y axis')
 args = vars(ap.parse_args())
 
 x_data = args['x_data']
 y_data = args['y_data']
 main(x_data, y_data)
 
 | 
在 shell 中调用
| 12
 3
 
 | $ python shellArgParse.py -x=1 -y=2x=1, y=2
 done!
 
 | 
参考链接
- 命令行运行Python脚本时传入参数的三种方式