Python 查找文件夹中的下一个文件

Python 查找文件夹中的下一个文件,python,performance,file,directory,os.path,Python,Performance,File,Directory,Os.path,我获取文件夹中下一个文件名的方法很糟糕,但很有效。我想取消调用os.listdir函数的要求,因为在大文件夹中调用速度很慢,但不知道如何操作。欢迎任何帮助 注: Fullpathtoimagefile是旧文件 changeimage是获取下一个文件的函数的名称 def nextfile(self): folder, filename = os.path.split(fullpathtoimagefile) filelist = os.listdir(folder) nex

我获取文件夹中下一个文件名的方法很糟糕,但很有效。我想取消调用os.listdir函数的要求,因为在大文件夹中调用速度很慢,但不知道如何操作。欢迎任何帮助

注: Fullpathtoimagefile是旧文件 changeimage是获取下一个文件的函数的名称

def nextfile(self):
    folder, filename = os.path.split(fullpathtoimagefile)
    filelist = os.listdir(folder)
    nextfile = filelist.index(filename) + 1
    nextfilename = filelist[nextfile]
    changeimage(os.path.join(folder, nextfilename))

tl;dr获取文件夹中下一个文件全名的更有效方法

也许您可以使用此文件


 [(os.path.join(folder, d), d, os.path.isdir(os.path.join(folder, d ))) for d in os.listdir(folder)]
简单代码

import os

arq = (os.listdir(".")) # "." = directory name
for file in arq:
    print(file)
另一个例子:

import os

arq = (os.listdir("."))
for file in arq:
    if (os.path.splitext(file)[1] == ".jpg"): #if a JPG file, do something
        print(file)

这种闻起来像是一个例子。看起来您正试图迭代文件夹中的图像-在这种情况下,请使用
pathlib
模块(从Python 3.4开始就有了该模块):


您能否只调用一次
os.listdir()
,并将结果保存在self上?虽然如果同时创建/删除了一个文件,我看不出您将如何避免再次调用
listdir()
。没想到这会发展得这么快。澄清:用例是单击文件夹中的文件,然后单击下一页。文件格式的过滤器可能会在每个图像之后更改。它调用os.listdir,速度非常慢。让我恼火的是:操作系统的内存中已经有了精确的文件列表,它被用来按顺序显示文件。有没有一种纯python方法可以获取该列表,这样我就不必调用os.listdir。
os.listdir()
是获取目录内容的纯python方法。听起来您使用的库坚持太频繁地调用
listdir()
from pathlib import Path

for path in Path("path/to/folder/with/images").glob("*.jpg"):
    print(path)