我有询问用户输入的python代码。(例如 src = input('Enter Path to src:')。所以当我通过命令提示符运行代码时(例如 python test.py)提示出现'Enter path to src:'。但我想在一行中输入所有内容(例如 python test.py c:\users\desktop\test.py)。我应该做哪些更改?提前致谢
问问题
3494 次
3 回答
5
argparse或optparse是你的朋友。optparse 的示例:
from optparse import OptionParser
parser = OptionParser()
parser.add_option("-f", "--file", dest="filename",
help="write report to FILE", metavar="FILE")
parser.add_option("-q", "--quiet",
action="store_false", dest="verbose", default=True,
help="don't print status messages to stdout")
(options, args) = parser.parse_args()
对于 argparse:
import argparse
parser = argparse.ArgumentParser(description='Process some integers.')
parser.add_argument('integers', metavar='N', type=int, nargs='+',
help='an integer for the accumulator')
parser.add_argument('--sum', dest='accumulate', action='store_const',
const=sum, default=max,
help='sum the integers (default: find the max)')
args = parser.parse_args()
于 2013-08-09T21:42:48.393 回答
4
替换src = input('Enter Path to src: ')
为:
import sys
src = sys.argv[1]
参考:http ://docs.python.org/2/library/sys.html
如果您的需求比您承认的更复杂,您可以使用参数解析库,如optparse(自 2.7 起已弃用)、argparse(2.7 和 3.2 中的新功能)或getopt。
下面是使用带有所需源和目标参数的 argparse 的示例:
#! /usr/bin/python
import argparse
import shutil
parser = argparse.ArgumentParser(description="Copy a file")
parser.add_argument('src', metavar="SOURCE", help="Source filename")
parser.add_argument('dst', metavar="DESTINATION", help="Destination filename")
args = parser.parse_args()
shutil.copyfile(args.src, args.dst)
运行此程序-h
以查看帮助消息。
于 2013-08-09T21:38:24.757 回答
1
您可以使用sys.argv[1]
来获取第一个命令行参数。如果您需要更多参数,可以使用sys.argv[2]
等来引用它们。
于 2013-08-09T21:39:05.923 回答