所以我正在处理这个项目,我从用户那里获取输入(文件名),然后打开并检查内容。文件名是“cur”
现在假设我的文件名是kb.py
(在python中)
如果我在终端上运行它,那么首先我会做:
python kb.y然后会有一个提示,用户将给出输入。
我会这样做的:
A = raw_input("Enter File Name: ")
b = open(A, 'r+')
我不想这样做。相反,我想将它用作命令,例如: python kb.py cur ,它将把它作为输入并保存到一个变量,然后打开它。 我很困惑如何在同一命令行中获取输入。
答案 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