如何编写一个函数来列出目录中的所有文件,包括所有可能的子目录中的所有文件?
例如,如果初始目录是
/example
,如何递归获取该目录内所有文件以及/example
的所有子目录的列表?
不应包含目录名称本身,仅应包含文件。
这是一种基于
os.scandir
的可能方法。
import os
def get_list_of_files_in_directory(dirname: str):
files = []
for f in os.scandir(dirname):
if f.is_dir():
files.extend(get_list_of_files_in_directory(f.path))
if f.is_file():
files.append(f.path)
return files
def main():
base_path = '/example'
files = get_list_of_files_in_directory(base_path)
for file in files:
print(f'found file {file}')
它将列出目录中的所有文件以及该目录的所有子目录,不包括目录本身。