相关疑难解决方法(0)

python os.walk到一定程度

我想构建一个程序,它使用一些基本代码来读取文件夹并告诉我文件夹中有多少文件.我目前是这样做的:

import os

folders = ['Y:\\path1', 'Y:\\path2', 'Y:\\path3']
for stuff in folders:
    for root, dirs, files in os.walk(stuff, topdown=True):
        print("there are", len(files), "files in", root)
Run Code Online (Sandbox Code Playgroud)

这很有效,直到"main"文件夹中有多个文件夹,因为文件夹/文件管理不佳,它可能会返回一个长的垃圾文件列表.所以我最多只想进入第二级.例:

Main Folder
---file_i_want
---file_i_want
---Sub_Folder
------file_i_want <--*
------file_i want <--*
------Sub_Folder_2
---------file_i_dont_want
---------file_i_dont_want
Run Code Online (Sandbox Code Playgroud)

我知道如何去只有第一层用break,用del dirs[:]取自这篇文章也是这个职位.

import os
import pandas as pd

folders = ['Y:\\path1', 'Y:\\path2', 'Y:\\path3']
for stuff in folders:
    for root, dirs, files in os.walk(stuff, topdown=True):
        print("there are", len(files), "files in", root)
        del dirs[:] # …
Run Code Online (Sandbox Code Playgroud)

python directory subdirectory python-os

10
推荐指数
2
解决办法
1万
查看次数

列出Python中给定级别的所有子目录

我有这样的备份目录结构(所有目录都不为空):

/home/backups/mysql/
    2012/
        12/
           15/
    2013/
        04/
           29/
           30/
        05/
           02/
           03/
           04/
           05/
Run Code Online (Sandbox Code Playgroud)

我想通过仅提供根目录路径来获取包含备份的所有目录的列表:

get_all_backup_paths('/home/backups/mysql', level=3) 
Run Code Online (Sandbox Code Playgroud)

这应该返回:

/home/backups/mysql/2012/12/15
/home/backups/mysql/2013/04/29
/home/backups/mysql/2013/04/30
/home/backups/mysql/2013/05/02
/home/backups/mysql/2013/05/03
/home/backups/mysql/2013/05/04
/home/backups/mysql/2013/05/05
Run Code Online (Sandbox Code Playgroud)

那些应该出现在结果中:

/home/backups/mysql/2012
/home/backups/mysql/2012/12
/home/backups/mysql/2013
/home/backups/mysql/2013/04
/home/backups/mysql/2013/05
Run Code Online (Sandbox Code Playgroud)

是否有任何方法可以降低os.listdir3级,排除所有其他级别?如果是的话,我会恭喜你的帮助.

def get_all_backup_paths(dir, level):
    # ????
Run Code Online (Sandbox Code Playgroud)

python

2
推荐指数
2
解决办法
562
查看次数

标签 统计

python ×2

directory ×1

python-os ×1

subdirectory ×1