2024-04-30 03:03:35 发布
网友
我想这样做:
c:\data\> python myscript.py *.csv
并将目录中的所有.csv文件传递给我的python脚本(以便sys.argv包含["file1.csv", "file2.csv"]等)
sys.argv
["file1.csv", "file2.csv"]
但是sys.argv只接收到["*.csv"]表示通配符未展开,所以这不起作用。
["*.csv"]
我觉得有一个简单的方法可以做到这一点,但是在谷歌上找不到。有什么想法吗?
在Unix中,shell扩展通配符,因此程序得到扩展的文件名列表。Windows不会这样做:shell将通配符直接传递给程序,程序必须自己展开它们。
Vinko是对的:glob模块完成了以下任务:
import glob, sys for arg in glob.glob(sys.argv[1]): print "Arg:", arg
您可以使用glob模块,这样就不会依赖于特定shell的行为(好吧,您仍然依赖于shell而不是扩展参数,但至少可以通过转义通配符:-)在Unix中实现这一点)。
from glob import glob filelist = glob('*.csv') #You can pass the sys.argv argument
在Unix中,shell扩展通配符,因此程序得到扩展的文件名列表。Windows不会这样做:shell将通配符直接传递给程序,程序必须自己展开它们。
Vinko是对的:glob模块完成了以下任务:
您可以使用glob模块,这样就不会依赖于特定shell的行为(好吧,您仍然依赖于shell而不是扩展参数,但至少可以通过转义通配符:-)在Unix中实现这一点)。
相关问题 更多 >
编程相关推荐