如何用Python递归遍历电脑所有文件夹并读取其中文件?
遍历电脑所有文件夹及文件的Python实现方案
针对你需求的遍历功能,这里提供两种基于os模块的实现方法,直接可用:
方法一:手动递归遍历(适合理解原理)
通过递归函数判断每个条目类型,文件夹则进入继续遍历,文件则打印名称,同时加入权限异常处理避免程序崩溃:
import os def traverse_directory(path): try: # 遍历当前路径下的所有文件/文件夹 for entry in os.listdir(path): full_path = os.path.join(path, entry) if os.path.isdir(full_path): print(f"进入文件夹: {full_path}") # 递归调用自身,遍历子文件夹 traverse_directory(full_path) else: print(f"文件: {entry}") except PermissionError: print(f"无权限访问目录: {path}") # 调用示例,替换为你想遍历的根路径,比如C盘根目录 traverse_directory("C:\\")
方法二:使用os.walk(简洁高效,推荐)
os.walk是Python内置的目录遍历工具,会自动递归遍历所有层级,返回当前目录路径、子文件夹列表、文件列表,无需手动处理递归逻辑:
import os def traverse_with_os_walk(root_path): for current_dir, subdirs, files in os.walk(root_path): print(f"当前目录: {current_dir}") # 打印子文件夹 for subdir in subdirs: print(f"子文件夹: {os.path.join(current_dir, subdir)}") # 打印文件 for file in files: print(f"文件: {file}") # 调用示例 traverse_with_os_walk("C:\\")
额外补充:启动阶段随机打印效果
结合你提到的启动模拟,可加入随机时长的打印逻辑,和遍历功能结合:
import time import random def simulate_boot_process(): # 随机3-8秒的启动时长 total_boot_time = random.randint(3, 8) start = time.time() while time.time() - start < total_boot_time: print("booting up...") # 随机0.5-1.5秒间隔打印 time.sleep(random.uniform(0.5, 1.5)) # 先执行启动模拟,再开始遍历 simulate_boot_process() traverse_with_os_walk("C:\\")
内容的提问来源于stack exchange,提问作者Aaron Jha
相关产品推荐
相关产品推荐

