Kiv*_*Kiv 14 python windows command-line arguments
我想做这样的事情:
c:\data\> python myscript.py *.csv
Run Code Online (Sandbox Code Playgroud)
并将目录中的所有.csv文件传递给我的python脚本(sys.argv
包含["file1.csv", "file2.csv"]
等等)
但sys.argv
只是收到["*.csv"]
表明通配符没有扩展,所以这不起作用.
我觉得有一种简单的方法可以做到这一点,但无法在Google上找到它.有任何想法吗?
Vin*_*vic 23
您可以使用glob模块,这样您就不会依赖于特定shell的行为(好吧,您仍然依赖于shell而不扩展参数,但至少您可以通过转义通配符在Unix中实现这一点) :-)).
from glob import glob
filelist = glob('*.csv') #You can pass the sys.argv argument
Run Code Online (Sandbox Code Playgroud)
Ned*_*der 14
在Unix中,shell会扩展通配符,因此程序会获得扩展的文件名列表.Windows不会这样做:shell将通配符直接传递给程序,程序必须自己扩展它们.
Vinko是对的:glob模块完成了这项工作:
import glob, sys
for arg in glob.glob(sys.argv[1]):
print "Arg:", arg
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
7464 次 |
最近记录: |