当前位置:  开发笔记 > 编程语言 > 正文

将带有通配符的参数传递给Python脚本

如何解决《将带有通配符的参数传递给Python脚本》经验,为你挑选了2个好方法。

我想做这样的事情:

c:\data\> python myscript.py *.csv

并将目录中的所有.csv文件传递给我的python脚本(sys.argv包含["file1.csv", "file2.csv"]等等)

sys.argv只是收到["*.csv"]表明通配符没有扩展,所以这不起作用.

我觉得有一种简单的方法可以做到这一点,但无法在Google上找到它.有任何想法吗?



1> Vinko Vrsalo..:

您可以使用glob模块,这样您就不会依赖于特定shell的行为(好吧,您仍然依赖于shell而不扩展参数,但至少您可以通过转义通配符在Unix中实现这一点) :-)).

from glob import glob
filelist = glob('*.csv') #You can pass the sys.argv argument


正是我在寻找:)

2> Ned Batcheld..:

在Unix中,shell会扩展通配符,因此程序会获得扩展的文件名列表.Windows不会这样做:shell将通配符直接传递给程序,程序必须自己扩展它们.

Vinko是对的:glob模块完成了这项工作:

import glob, sys

for arg in glob.glob(sys.argv[1]):
    print "Arg:", arg

推荐阅读
黄晓敏3023
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有