在Python中获取命令行

时间:2013-06-17 19:58:33

标签: python bash command-line

所以我正在处理这个项目,我从用户那里获取输入(文件名),然后打开并检查内容。文件名是“cur” 现在假设我的文件名是kb.py(在python中) 如果我在终端上运行它,那么首先我会做: python kb.y然后会有一个提示,用户将给出输入。 我会这样做的:

A = raw_input("Enter File Name: ")
b = open(A, 'r+')

我不想这样做。相反,我想将它用作命令,例如: python kb.py cur ,它将把它作为输入并保存到一个变量,然后打开它。 我很困惑如何在同一命令行中获取输入。

2 个答案:

答案 0 :(得分:5)

只需使用sys.argv,就像这样:

import sys

# this part executes when the script is run from the command line
if __name__ == '__main__':
    if len(sys.argv) != 2: # check for the correct number of arguments
        print 'usage: python kb.py cur'
    else:
        call_your_code(sys.argv[1]) # first command line argument

注意:sys.argv[0]是脚本的名称,sys.argv[1]是第一个命令行参数。等等,如果有更多的论点。

答案 1 :(得分:0)

对于简单的东西sys.argv[]是要走的路,对于更复杂的东西,看一下argparse-module

import argparse
parser = argparse.ArgumentParser()
parser.add_argument("--verbose", help="increase output verbosity",
                    action="store_true")
args = parser.parse_args()
if args.verbose:
   print "verbosity turned on"

输出:

$ python prog.py --verbose
verbosity turned on
$ python prog.py --verbose 1
usage: prog.py [-h] [--verbose]
prog.py: error: unrecognized arguments: 1
$ python prog.py --help
usage: prog.py [-h] [--verbose]

optional arguments:
  -h, --help  show this help message and exit
  --verbose   increase output verbosity