如何在Python中列出目录的内容?
不难,但我有心理障碍。
Can’t be hard, but I’m having a mental block.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
不难,但我有心理障碍。
Can’t be hard, but I’m having a mental block.
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
接受
或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
发布评论
评论(8)
在 Python 3.4+ 中,您可以使用新的
pathlib
package:Path.iterdir()
返回一个迭代器,可以轻松地将其转换为list
:In Python 3.4+, you can use the new
pathlib
package:Path.iterdir()
returns an iterator, which can be easily turned into alist
:从 Python 3.5 开始,您可以使用 os.scandir。
不同之处在于它返回文件条目而不是名称。在某些操作系统(例如 Windows)上,这意味着您不必通过 os.path.isdir/file 来知道它是否是文件,这可以节省 CPU 时间,因为 stat在 Windows 中扫描 dir 时,code> 已经完成:
列出目录并打印大于
max_value
字节的文件的示例:(阅读我的基于性能的广泛答案 此处)
Since Python 3.5, you can use
os.scandir
.The difference is that it returns file entries not names. On some OSes like windows, it means that you don't have to
os.path.isdir/file
to know if it's a file or not, and that saves CPU time becausestat
is already done when scanning dir in Windows:example to list a directory and print files bigger than
max_value
bytes:(read an extensive performance-based answer of mine here)
下面的代码将列出目录和目录中的文件。另一种是 os.walk
Below code will list directories and the files within the dir. The other one is os.walk
一种方式:
另一种方式:
此处找到示例。
上面的
glob.glob
方法不会列出隐藏文件。由于我几年前最初回答了这个问题,pathlib 已添加到 Python 中。现在,我列出目录的首选方法通常涉及
Path
对象上的iterdir
方法:One way:
Another way:
Examples found here.
The
glob.glob
method above will not list hidden files.Since I originally answered this question years ago, pathlib has been added to Python. My preferred way to list a directory now usually involves the
iterdir
method onPath
objects:如果需要递归,可以使用 os.walk:
os.walk
can be used if you need recursion:glob.glob
或os.listdir
就可以了。glob.glob
oros.listdir
will do it.os
模块 处理所有这些事情。The
os
module handles all that stuff.