PythonTip >> 博文 >> python

Python 脚本依赖 glob 从命令行获取通配符文件名

zihua 2014-05-06 15:05:27 点击: 1040 | 收藏


在写一个 py 脚本的时候,需要从命令行里面带参数进来,指明需要处理的文件名,这个地方,希望支持 shell 那种 * 的通配符,查了一下,有相关的库,看这里, https://docs.python.org/2/library/glob.html

但是,按照这种搞法,跑起来之后发现不行,glob.glob(sys.argv[2]) 总是只返回一个文件名,查了一下,看到这里, http://stackoverflow.com/questions/8538564/pythons-glob-only-returning-the-first-result

原来,是我们在使用 shell 的时候,在 * 送给到 py 脚本之前,就已经被展开了,那么怎么办呢,原题给了一个方式,说用引号引起来,不过还有另外一种方式,可以遍历 sys.argv 数组

if __name__ == "__main__":
	if len(sys.argv) < 3:
		print "Usage:", sys.argv[0], "path_to_ini path_to_dump_file"
	else:
		for path_to_dump in sys.argv[2:]:
			if os.path.isdir(path_to_dump):
				print path_to_dump, "is a directory, skip..."
			else:
				split(sys.argv[1], path_to_dump)
原文链接:http://www.tuicool.com/articles/IZnQvq

作者:zihua | 分类: python | 标签: python | 阅读: 1040 | 发布于: 2014-05-06 15时 |