从列表中删除没有特定文件路径的文件-Python

时间:2018-12-18 14:09:41

标签: python filesystems

作为我项目的一部分,我的工具要求用户输入一个文件夹,该文件夹中包含的所有文件都存储在列表中,并在以后使用。 我需要这样做,以便列表将仅包含“ .jpg”或“ .tiff”文件格式的文件,因此删除所有不属于该文件格式的文件。我似乎无法弄清楚该如何做。如何从列表中删除其他文件格式?我将在下面举一个我已经尝试过的例子。

files = os.listdir(file_dir)

for file in files:
    if not files.endswith(".jpg", ".tiff"):
        files = files.remove(file)

3 个答案:

答案 0 :(得分:3)

使用

files = [f for f in os.listdir(file_dir) if (f.endswith(".jpg") or f.endswith(".tiff"))]

答案 1 :(得分:2)

您可以使用 glob 模块,它将列出所有匹配的路径名。

import glob

files = []

for f in glob.glob("*.jpg"):
    files.append(f)
for f in glob.glob("*.tiff"):
    files.append(f)

答案 2 :(得分:0)

在以“ if”开头的行上,您正在检查文件,而不是文件。并且“ endswith”需要一个元组。 这应该起作用:

 files = os.listdir(file_dir)

 for file in files:
     if not file.endswith((".jpg", ".tiff")):
        files.remove(file)