在Unix中,所有磁盘都作为主文件系统中的路径公开,因此os.walk('/')
会遍历,例如,/media/cdrom
主要硬盘,这对某些应用程序来说是不可取的.
如何os.walk
在单个设备上保留?
有关:
Con*_*tin 16
来自os.walk
docs:
当topdown为true时,调用者可以就地修改dirnames列表(可能使用del或slice赋值),而walk()只会递归到名称保留在dirnames中的子目录中; 这可以用来修剪搜索
所以像这样的东西应该工作:
for root, dirnames, filenames in os.walk(...):
dirnames[:] = [
dir for dir in dirnames
if not os.path.ismount(os.path.join(root, dir))]
...
Run Code Online (Sandbox Code Playgroud)