如何使用walk函数返回每个文件的目录名和文件名?

2024-03-29 06:11:51 发布

您现在位置:Python中文网/ 问答频道 /正文

我编写了一个函数,返回遍历搜索后文件的绝对路径

但是如何只返回每个文件的最后一个文件夹名和文件名(同时返回)

例如,我有3个文件:

  • “D:\python\demo\u project\dir1\dir2\dir3\file1.sql”

  • “D:\python\demo\u project\dir1\dir2\file2.sql”

  • “D:\python\demo\u project\dir1\file3.sql”

结果应该是:

  • dir3\file1.sql

  • dir2\file2.sql

  • dir1\file3.sql

def find_sql(main_dir):
    arr = []
    for dirpath, subdirs, files in walk(main_dir):
        arr.extend(path.join(dirpath, x) for x in files if x.endswith(".sql"))

    return arr

call_find_sql = find_sql("D:\\python\\demo_project")


Tags: 文件projectforsqldemomaindirfind
1条回答
网友
1楼 · 发布于 2024-03-29 06:11:51

dirpath上使用os.path.basename

例如,它将'D:\\python\\demo_project\\dir1\\dir2\\dir3'转换为'dir3'

from os import walk, path

def find_sql(main_dir):
    arr = []
    for dirpath, subdirs, files in walk(main_dir):
        arr.extend(
            path.join(path.basename(dirpath), x)
            for x in files
            if x.endswith(".sql")
            )
    return arr

相关问题 更多 >