应该不难,但我脑子有问题。
当前回答
从Python 3.5开始,你可以使用os.scandir。
不同之处在于它返回的是文件条目而不是名称。在一些操作系统上,比如windows,这意味着你不需要os.path。isdir/file来知道它是否是一个文件,这节省了CPU时间,因为在Windows中扫描dir时stat已经完成了:
使用实例列出目录并打印大于max_value字节的文件。
for dentry in os.scandir("/path/to/dir"):
if dentry.stat().st_size > max_value:
print("{} is biiiig".format(dentry.name))
(点击这里阅读我关于绩效的详细回答)
其他回答
一个方法:
import os
os.listdir("/home/username/www/")
另一种方法:
glob.glob("/home/username/www/*")
这里有一些例子。
通配符匹配操作符。上面的Glob方法不会列出隐藏文件。
自从我最初在几年前回答这个问题以来,pathlib已经被添加到Python中。现在我喜欢的列出目录的方法通常涉及到Path对象的iterdir方法:
from pathlib import Path
print(*Path("/home/username/www/").iterdir(), sep="\n")
从Python 3.5开始,你可以使用os.scandir。
不同之处在于它返回的是文件条目而不是名称。在一些操作系统上,比如windows,这意味着你不需要os.path。isdir/file来知道它是否是一个文件,这节省了CPU时间,因为在Windows中扫描dir时stat已经完成了:
使用实例列出目录并打印大于max_value字节的文件。
for dentry in os.scandir("/path/to/dir"):
if dentry.stat().st_size > max_value:
print("{} is biiiig".format(dentry.name))
(点击这里阅读我关于绩效的详细回答)
操作系统。如果需要递归,可以使用Walk:
import os
start_path = '.' # current directory
for path,dirs,files in os.walk(start_path):
for filename in files:
print os.path.join(path,filename)
水珠。Glob或os。Listdir会做这件事。
在Python 3.4+中,你可以使用新的pathlib包:
from pathlib import Path
for path in Path('.').iterdir():
print(path)
Path.iterdir()返回一个迭代器,它可以很容易地转换为一个列表:
contents = list(Path('.').iterdir())
推荐文章
- 数据类vs类型。NamedTuple主要用例
- 如何从macOS完全卸载蟒蛇
- 是否有可能键入提示一个lambda函数?
- 'dict'对象没有has_key属性
- 使用Pandas groupby连接来自几行的字符串
- Pandas:给定列的数据帧行之和
- 如何避免在为Python项目构建Docker映像时重新安装包?
- 如何激活蟒蛇环境
- 省略[…]意思是在一个列表里?
- 为什么我得到“'str'对象没有属性'读取'”当尝试使用' json。载入字符串?
- 不区分大小写的列表排序,没有降低结果?
- 排序后的语法(key=lambda:…)
- 在烧瓶中返回HTTP状态代码201
- 拒绝访问该路径
- 使用python创建一个简单的XML文件