我编写了一个函数,该函数在遍历搜索后返回文件的绝对路径。
但是如何仅返回每个文件的最后一个文件夹名和文件名(结合使用)?
例如,我有3个文件:
“ D:\ python \ demo_project \ dir1 \ dir2 \ dir3 \ file1.sql”
“ D:\ python \ demo_project \ dir1 \ dir2 \ file2.sql”
“ D:\ python \ demo_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")
答案 0 :(得分:1)
在os.path.basename
上使用dirpath
。
例如,它将'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