Python:如何将大字符串作为单个参数传递?

标签 python command-line-arguments

我正在尝试将整个字符串作为参数传递给 python 脚本。我遇到的问题是 Python 假定我只需要字符串的第一个单词。

在下面的示例中,-l arg 代表日志,我希望它捕获整个字符串。

例子:

python myscript.py -l "Big String I want to as single argument"

代码如下:

try:
  opts, args = getopt.getopt(sys.argv[1:], 'hcrn:l:wo:a:emi', ["reset="])
  #-l is one of many arguments I'm looking for
except getopt.error, err:
  print str(err)
  sys.exit(2)

for o, a in getopts:
    if o in ("-l", "--log"):  #log
    logIt(a)  # Problem here a='Big'

如何获取第一个参数的整个字符串,而不仅仅是第一个单词?请举个例子。

最佳答案

首先:getopt 已经过时且已弃用。

请使用 Python 的 optparse 模块或更新的 argparse 模块(在 PyPI 上有一个用于 Python 2.X 的 argparse backport)。

第一个示例清楚地涵盖了使用 optparse 解决的用例:

http://docs.python.org/library/optparse.html

parser = OptionParser()
parser.add_option("-f", "--file", dest="filename",
                  help="write report to FILE", metavar="FILE")

(options, args) = parser.parse_args()

关于Python:如何将大字符串作为单个参数传递?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6013465/

相关文章:

c - 如何检测 C 中的 CLI 特殊字符?

python - 4 位数字作为参数的命令行解析器,具有多种组合 (Python)

python - eclipse ,PyDev "interpreter does not exist in filesystem"

python - 获取与列表字典中的最大值对应的键

scala - 如何解析 Scala 中的命令行参数?

java - 如何以任意顺序给出命令行参数?

python - TestCase self.assertEqual 不匹配类似的字符串

python - 在 Python 中对异构对象列表进行排序

python - 有没有办法更快地运行此 Python 代码段?

bash - 在 Bash 中处理带有多个参数的命令行选项