如何在Python中列出目录中的所有tga文件(非递归)?
答案 0 :(得分:20)
如果您是基于文件扩展名进行的,则可以执行以下操作:
import os
directory = "C:/"
extension = ".tga"
list_of_files = [file for file in os.listdir(directory) if file.lower().endswith(extension)]
如果可以保证文件的情况,显然你可以省略lower()。还有优秀的path.py(http://pypi.python.org/pypi/path.py)模块。
如果您不知道文件扩展名,可以使用PIL(http://www.pythonware.com/products/pil/)之类的东西通过解码文件来检测文件类型。
答案 1 :(得分:14)
import glob, os
for filename in glob.glob(os.path.join(yourPath, "*.tga"))
print(filename)
答案 2 :(得分:2)
以下示例使用filter
,它提供了一个优雅的解决方案,如下所示:
import os
files = filter(lambda x: x.endswith('.tga'), os.listdir(DIR))
答案 3 :(得分:1)
>>> import os
>>> for file in [tga for tga in os.listdir(directory) if tga.endswith(".tga")]:
>>> print file
答案 4 :(得分:0)
我的Targa / Vista通常有.vst和.tga,有时还有其他扩展程序:
import os
from glob import glob
import PIL
filenames = []
for filename in glob(os.path.join(dirname, "*.*")):
try:
img = PIL.Image(filename)
if img.format == "TGA":
filenames.append(filename)
except IOError: // from PIL if not recognised
pass