我如何接受无限制的 sys.argv[] 参数?

how do i take unlimited sys.argv[] arguments?

具体来说,我有兴趣学习如何在 python 中编写一个 sys.argv[] 函数,允许用户提供任意数量的参数。我不确定是否有更好的方法可以做到这一点,或者是否可以做到这一点。

这样做的目的是开发各种大小和数量的文本文档之间的相似性工具。这种情况下的用例最少需要 argv[1],最多需要 argv[unlimited].

欢迎任何意见、来源或建议。

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 查看这些限制。)