作为我项目的一部分,我的工具要求用户输入一个文件夹,该文件夹中包含的所有文件都存储在列表中,并在以后使用。 我需要这样做,以便列表将仅包含“ .jpg”或“ .tiff”文件格式的文件,因此删除所有不属于该文件格式的文件。我似乎无法弄清楚该如何做。如何从列表中删除其他文件格式?我将在下面举一个我已经尝试过的例子。
files = os.listdir(file_dir)
for file in files:
if not files.endswith(".jpg", ".tiff"):
files = files.remove(file)
答案 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)