一尘不染

仅列出当前目录中的文件

python

在Python中,我只想列出当前目录中的所有文件。我不希望从任何子目录或父目录中列出文件。

似乎确实有类似的解决方案,但它们似乎对我不起作用。这是我的代码段:

import os
for subdir, dirs, files in os.walk('./'):
    for file in files:
      do some stuff
      print file

假设我在当前目录中有2个文件holygrail.py和Tim。我也有一个文件夹,其中包含两个文件-
我们称它们为Arthur和Lancelot。当我运行脚本时,这就是我得到的:

holygrail.py
Tim
Arthur
Lancelot

我对holygrail.py和Tim感到满意。但是我不想列出亚瑟(Arthur)和兰斯洛特(Lancelot)这两个文件。


阅读 144

收藏
2020-12-20

共1个答案

一尘不染

只需使用os.listdiros.path.isfile替代的os.walk

例:

import os
files = [f for f in os.listdir('.') if os.path.isfile(f)]
for f in files:
    # do something

但在将此应用到其他目录时要小心,例如

files = [f for f in os.listdir(somedir) if os.path.isfile(f)].

这将不起作用,因为f它不是完整路径,而是相对于当前目录的路径。

因此,要过滤另一个目录,请执行 os.path.isfile(os.path.join(somedir, f))

2020-12-20