繁体   English   中英

使用linux shell中的变量执行python脚本

[英]Execute python script with a variable from linux shell

这可能是一个简单的问题,但我不知道我正在尝试做什么的名称,所以我不知道如何搜索它。

基本上当我在终端(linux命令行)和我输入时

$ python do_something.py stuff

我想让stuff东西对我的剧本来说意味着什么。 所以有两个问题:

  1. 怎么称呼?
  2. 我该怎么做?

最简单的方法是使do_something.py脚本import sys并以sys.argv(1)访问“stuff”命令行参数。 当然,有许多更好的方式。

您要求的是称为参数解析。

要以正确的方式执行此操作,您应该明确使用argparse

它是一个整洁而又非常强大的库,可以使参数解析更有效。 此外,默认情况下,它使您的脚本以正确的Linux方式管理参数。

基本示例:

import argparse

parser = argparse.ArgumentParser(description='My argparse program')

parser.add_argument('--verbose',
    action='store_true',
    help='sets output to verbose' )

args = parser.parse_args()

if args.verbose:
    print("~ Verbose!")
else:
    print("~ Not so verbose")

然后你可以做一些很酷的事情:

$ python3 myscript.py --verbose
~ Verbose!

什么更酷,它提供了一个自动--help (或-h )参数:

$ python3 myscript.py --help
usage: myscript.py [-h] [--verbose]

My argparse program

optional arguments:
  -h, --help  show this help message and exit
  --verbose   sets output to verbose

这是一种允许您轻松完成复杂内容的库:

./myscript.py --password=no -c -o --keep_moving --name="Robert"

这是一个很好的教程的链接,上面的例子可以从中自由调整。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM