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

时间:2014-12-29 00:18:54

标签: python terminal argparse execute

这可能是一个简单的问题,但我不知道我要做的事情的名称,所以我不知道如何搜索它。

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

$ python do_something.py stuff

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

  1. 这怎么称呼?
  2. 我该怎么办?

2 个答案:

答案 0 :(得分:3)

最简单的方法是将do_something.py脚本发送到import sys并访问"内容"命令行参数为sys.argv(1)。当然,有许多更好的方式。

答案 1 :(得分:2)

你所要求的是被称为参数解析。

要以正确的方式执行此操作,您应该明确使用 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"

Here is a link to a nice tutorial ,上面的例子可以自由调整。