1

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

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

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

4

2 回答 2

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]是第一个命令行参数。等等,如果有更多的争论。

于 2013-06-17T20:00:00.963 回答
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
于 2013-06-17T20:03:17.003 回答