0

我有询问用户输入的python代码。(例如 src = input('Enter Path to src:')。所以当我通过命令提示符运行代码时(例如 python test.py)提示出现'Enter path to src:'。但我想在一行中输入所有内容(例如 python test.py c:\users\desktop\test.py)。我应该做哪些更改?提前致谢

4

3 回答 3

5

argparseoptparse是你的朋友。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

参考:Python 中的命令行参数


下面是使用带有所需源和目标参数的 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 回答