我如何接受无限制的 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
查看这些限制。)
具体来说,我有兴趣学习如何在 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
查看这些限制。)