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 这两个文件。

最佳答案

只需使用 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))

(感谢 Causality 的提示)

https://stackoverflow.com/questions/11968976/

相关文章:

linux - 在 Unix/Linux 中判断两个文件是否具有相同内容的最快方法?

python - 在 Python 中换行

linux - 有效地测试一个端口是否在 Linux 上打开?

python - 如何在类中调用函数?

python - 转置列表列表

linux - 如何在 Linux 中为每个输出行列出一个文件名?

python - 如何理解 Python 循环的 `else` 子句?

python - 如何在 Python3 中将 'binary string' 转换为普通字符串?

linux - 创建 zip 文件并忽略目录结构

linux - 如何包含管道 |在我的 linux 中找到 -exec 命令?