如何在Python中列出目录中的所有tga文件(非递归)?

时间:2009-03-18 21:21:31

标签: python

如何在Python中列出目录中的所有tga文件(非递归)?

5 个答案:

答案 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