在Python中处理任意数量的命令行参数
我想让我的脚本能够接受任意数量的文件名作为命令行参数。在Unix系统中,可以使用'*'这个符号来表示任何字符。例如,
ls blah*.txt
这会列出所有以“blah”开头并以“txt”结尾的文件。
我需要在我的Python脚本中实现类似的功能。
python myscript.py blah*.txt
这可能吗?如果可以的话,应该怎么做呢?
5 个回答
0
我觉得你想用 glob 这个工具。
3
import sys
for arg in sys.argv[1:]:
print arg
在Unix系统中,命令行的参数会自动被处理,所以你不需要自己去处理这些参数。如果你需要依次处理一堆文件,可以看看fileinput模块。这个模块的工作方式类似于Perl中的“魔法ARGV”句柄,以及它的-n
-i
import fileinput
for line in fileinput.input(inplace = True, backup = '.bak'):
print fileinput.filelineno() + ": " + line
在命令行中每个文件的每一行前面添加行号,同时把原文件保存为filename.bak
1
这就是为什么你需要用到 sys.argv
(别忘了要 import sys
)。它会把你所有的 blah*.txt
文件名以列表的形式返回给你。