我如何采取无限制的sys.argv []参数?

时间:2015-01-27 00:14:01

标签: python parsing python-2.7 command-line-interface argv

详细说明,我有兴趣学习如何在python中编写一个sys.argv []函数,该函数允许用户提供与用户想要的一样多的参数。我不确定是否有更好的方法可以做到这一点,或者是否可以完成。

要点是在不同大小和数量的文本文档之间开发相似性工具。这种情况下的用例与argv [1]和argv [无限]一样少。

欢迎任何输入,来源或建议。

1 个答案:

答案 0 :(得分:6)

sys.argv只是一个常规的Python列表,所以你可以只询问len(sys.argv),或者你可以直接枚举内容(使用for ... in循环)和其他任何内容一样可迭代。

请注意,sys.argv[0]是程序的名称,因此您需要跳过第一项。 (然后,(len(sys.argv) - 1)是调用者提供的参数数量。)

import sys

for arg in sys.argv[1:]:
    print arg

示例调用:

$ python test.py a b c
a
b
c

在您的情况下,您将使用您想要对参数执行的任何处理来替换print arg

这将适用于任何操作系统强加的限制。 (某些操作系统会限制您可以传递给程序的参数数量。例如,在Linux上,您可以使用xargs --show-limits查看这些限制。)