用法:
os.fwalk(top='.', topdown=True, onerror=None, *, follow_symlinks=False, dir_fd=None)
它的行为与
walk()
完全相同,只是它产生一个 4 元组(dirpath, dirnames, filenames, dirfd)
,并且它支持dir_fd
。dirpath
、dirnames
和filenames
与walk()
输出相同,dirfd
是引用目录dirpath
的文件说明符。此函数始终支持相对于目录说明符的路径,而不是遵循符号链接。但是请注意,与其他函数不同,
follow_symlinks
的fwalk()
默认值为False
。这个例子显示了起始目录下每个目录中非目录文件占用的字节数,除了它不在任何 CVS 子目录下查找:
import os for root, dirs, files, rootfd in os.fwalk('python/Lib/email'): print(root, "consumes", end="") print(sum([os.stat(name, dir_fd=rootfd).st_size for name in files]), end="") print("bytes in", len(files), "non-directory files") if 'CVS' in dirs: dirs.remove('CVS') # don't visit CVS directories
在下一个示例中,自下而上遍历树是必不可少的:
rmdir()
不允许在目录为空之前删除目录:# Delete everything reachable from the directory named in "top", # assuming there are no symbolic links. # CAUTION: This is dangerous! For example, if top == '/', it # could delete all your disk files. import os for root, dirs, files, rootfd in os.fwalk(top, topdown=False): for name in files: os.unlink(name, dir_fd=rootfd) for name in dirs: os.rmdir(name, dir_fd=rootfd)
使用参数
top
、topdown
、onerror
、follow_symlinks
、dir_fd
引发审计事件os.fwalk
。可用性:Unix。
3.3 版中的新函数。
在 3.6 版中更改:接受一个path-like 对象.
在 3.7 版中更改:增加了对
bytes
路径。
相关用法
- Python os.fork()用法及代码示例
- Python os.fstatvfs()用法及代码示例
- Python os.fdatasync()用法及代码示例
- Python os.fchmod()用法及代码示例
- Python os.fchdir()用法及代码示例
- Python os.fsencode()用法及代码示例
- Python os.ftruncate()用法及代码示例
- Python os.fsdecode()用法及代码示例
- Python os.fdopen()用法及代码示例
- Python os.fsync()用法及代码示例
- Python os.fchown()用法及代码示例
- Python os.fstat()用法及代码示例
- Python os.fpathconf()用法及代码示例
- Python os.path.normcase()用法及代码示例
- Python os.read()用法及代码示例
- Python os.DirEntry.inode()用法及代码示例
- Python os.closerange()用法及代码示例
- Python os.set_blocking()用法及代码示例
- Python os.pathconf()用法及代码示例
- Python os.chflags()用法及代码示例
注:本文由纯净天空筛选整理自python.org大神的英文原创作品 os.fwalk。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。