# -*- coding:utf-8 -*- import os # 获取指定目录及其子目录下所有目录绝对路径 def get_abspath_of_all_directories_under_path(path): all_directories = [] for top, directories, files in os.walk(path): for directory in directories: all_directories.append(os.path.join(os.path.abspath(directory))) return all_directories # 获取指定目录及其子目录下所有文件绝对路径 def get_abspath_of_all_files_under_path(path): all_files = [] for top, directories, files in os.walk(path): for file in files: all_files.append(os.path.join(os.path.abspath(top), file)) return all_files # 获取指定目录下所有直接子目录绝对路径 def get_abspath_of_all_child_directories_under_path(path): all_child_directories = [] for item in os.listdir(os.path.abspath(path)): item_path = os.path.join(path, item) if os.path.isdir(os.path.abspath(item_path)): all_child_directories.append(item_path) return all_child_directories # 获取指定目录下所有直接子文件绝对路径 def get_abspath_of_all_child_files_under_path(path): all_child_files = [] for item in os.listdir(path): if os.path.isfile(os.path.join(path, item)): all_child_files.append(os.path.join(path, item)) return all_child_files # 获取指定目录下特定目录绝对路径集的所有文件绝对路径 def get_abspath_of_all_file_under_path(path, designated_directories=None): all_files_in_designated_directories = [] # 未指定特定目录集, 返回指定目录下所有文件绝对路径 if designated_directories is None: return get_abspath_of_all_child_files_under_path(os.path.abspath(path)) for directory in get_abspath_of_all_child_directories_under_path(os.path.abspath(path)): if directory in designated_directories: for top, dirs, files in os.walk(directory): for file in files: all_files_in_designated_directories.append(os.path.join(os.path.abspath(top), file)) return all_files_in_designated_directories if __name__ == '__main__': path_tobequeried = os.path.abspath(r'.') dirs_tobequeried = [] # print(get_abspath_of_all_directories_under_path(path_tobequeried)) # print(get_abspath_of_all_files_under_path(path_tobequeried)) # print(get_abspath_of_all_child_directories_under_path(path_tobequeried)) # print(get_abspath_of_all_child_files_under_path(path_tobequeried)) dirs_tobequeried.append(os.path.abspath(r'.\advanced')) dirs_tobequeried.append(os.path.abspath(r'.\basic')) dirs_tobequeried.append(os.path.abspath(r'.\mytools')) for file in get_abspath_of_all_file_under_path(path_tobequeried, dirs_tobequeried): print(file)
目录文件搜索小工具(Python实现)
最新推荐文章于 2024-04-29 17:55:25 发布