Python:选择目录中的第一个文件

Ler*_*enn 9 python file

我正在尝试处理目录中的一些文件而不知道他们的名字,并逐个处理.所以我习惯os.listdir(path)列出文件.

所以我必须在每次调用函数时列出文件.问题是当有很多文件(比如2000)时,列出每个文件需要花费很多时间,我只想要第一个文件.

是否有任何解决方案获得名字而不列出每个文件?

谢谢 :)

Mic*_*lon 10

os.listdir(path)[0]
Run Code Online (Sandbox Code Playgroud)

它会比"列出"(打印?)每个文件名更快,但仍然需要将所有文件名加载到内存中.此外,哪个文件是第一个文件,您是否只想要先出现哪个文件或者是否有您想要的特定文件,因为这是不同的.


Nik*_*day 7

看起来您正在尝试批量处理文件,并且您将在某个时刻迭代所有文件。与其每次输入函数时都调用该方法,为什么不使用全局参数以便只加载列表一次呢?因此,例如,而不是:

import os
def foo(path):
    os.listdir(path)[0]
Run Code Online (Sandbox Code Playgroud)

你有:

import os
fnames = os.listdir(path)
def foo(path):
    fnames[0]
Run Code Online (Sandbox Code Playgroud)


hel*_*loV 6

如果您的目标是处理每个文件名,请使用 os.walk() 生成器:

Help on function walk in module os:

walk(top, topdown=True, onerror=None, followlinks=False)
    Directory tree generator.
Run Code Online (Sandbox Code Playgroud)