在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 很满意。但亚瑟和兰斯洛特这两个档案,我不想列出来。
只需使用os.listdir and os.path.isfile代替os.walk.
Example:
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))
(Thanks 因果关系以获得提示)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)