网站gif素材,百度指数代表什么意思,莱芜金点子保安最新招聘信息,单机小游戏在线玩网页import os
import re# 定义要查找的目录路径
path rJ:\...\顺序目录 # 要遍历的主目录路径# 定义输出的目录文件路径
output_file rJ:\...\目录_中文文件.txt # 保存结果的文件路径# 判断文件名是否包含中文字符
def contains_chinese(text):retur…import os
import re# 定义要查找的目录路径
path rJ:\...\顺序目录 # 要遍历的主目录路径# 定义输出的目录文件路径
output_file rJ:\...\目录_中文文件.txt # 保存结果的文件路径# 判断文件名是否包含中文字符
def contains_chinese(text):return bool(re.search(r[\u4e00-\u9fff], text)) # 检查文件名中是否包含中文字符返回布尔值# 遍历路径并生成文件目录
def generate_file_directory(path, output_file):try:# 打开输出文件with open(output_file, w, encodingutf-8) as f: # 以写入模式打开文件编码为 UTF-8f.write(文件目录列表只包含中文文件名:\n\n) # 写入文件开头标题f.flush() # 立即将缓冲区内容写入文件print(文件目录列表只包含中文文件名:\n) # 在控制台打印标题用于调试# 遍历主目录中的 Day 文件夹for day_dir in sorted(os.listdir(path)): # 列出主目录中的所有文件和文件夹并按名称排序day_path os.path.join(path, day_dir) # 拼接得到 Day 文件夹的完整路径if os.path.isdir(day_path) and day_dir.startswith(Day): # 判断当前是否是 Day 文件夹# 写入 Day 标题title f{day_dir}:\n # 格式化 Day 文件夹标题f.write(title) # 写入标题到文件f.flush() # 刷新缓冲区os.fsync(f.fileno()) # 强制将数据写入磁盘print(title, end) # 在控制台打印标题# 遍历 Day 文件夹内容for root, dirs, files in os.walk(day_path): # 遍历当前 Day 文件夹下的所有子目录和文件# 获取当前目录的相对路径relative_root os.path.relpath(root, day_path) # 将当前目录转换为相对于 Day 文件夹的路径# 筛选包含中文文件的文件名chinese_files [file for file in files if contains_chinese(file)] # 筛选出文件名中包含中文的文件# 如果当前目录有符合要求的文件则写入目录标题if chinese_files:# 判断是否需要使用特殊格式 -笔记:、-视频: 等if 笔记 in relative_root: # 如果当前目录路径中包含 笔记section_title -笔记:\nelif 代码 in relative_root: # 如果当前目录路径中包含 代码section_title -代码:\nelif 课后作业 in relative_root: # 如果当前目录路径中包含 课后作业section_title -课后作业:\nelif 课件 in relative_root: # 如果当前目录路径中包含 课件section_title -课件:\nelif 软件 in relative_root: # 如果当前目录路径中包含 软件section_title -软件:\nelif 视频 in relative_root: # 如果当前目录路径中包含 视频section_title -视频:\nelse:section_title f{relative_root}:\n # 如果不属于上述分类则直接写入相对路径作为标题# 写入子目录标题f.write(section_title) # 将子目录标题写入文件f.flush() # 刷新缓冲区os.fsync(f.fileno()) # 强制将数据写入磁盘print(section_title, end) # 在控制台打印子目录标题# 写入文件名使用缩进格式for file in chinese_files: # 遍历所有符合条件的文件content f ——{file}\n # 格式化为缩进显示的文件名f.write(content) # 将文件名写入文件f.flush() # 实时写入到文件os.fsync(f.fileno()) # 强制刷新到磁盘print(content, end) # 在控制台打印文件名# 添加空行分隔不同子目录f.write(\n) # 写入空行f.flush() # 刷新缓冲区os.fsync(f.fileno()) # 强制将空行写入文件print(\n, end) # 在控制台打印空行print(f\n目录已生成到文件: {output_file}) # 程序结束后打印成功提示except Exception as e:print(f发生错误: {e}) # 捕获异常并打印错误信息# 调用函数生成目录
generate_file_directory(path, output_file) # 执行函数详细注释说明 中文筛选逻辑 函数 contains_chinese 使用正则表达式判断文件名中是否包含中文字符匹配 [\u4e00-\u9fff] 范围的字符。 os.walk() 的作用 遍历指定目录及其子目录返回当前目录路径root、子目录列表dirs和文件列表files。 子目录分类 通过判断目录路径中是否包含指定关键词如 笔记、代码为不同子目录生成对应的标题格式如 -笔记:。 实时写入与控制台打印 每次写入文件后立即刷新缓冲区并强制写入磁盘f.flush()
os.fsync(f.fileno())同时将写入内容打印到控制台便于调试和实时查看进度。 Day 文件夹循环 主目录中的子目录按名称排序并筛选出以 Day 开头的文件夹进行处理。 代码执行流程
打开目标文件并写入标题。遍历主目录中的 Day 文件夹对每个 Day 文件夹写入标题。遍历 Day 文件夹中的子目录和文件 根据目录名称分类如 -笔记:。筛选出包含中文的文件并以缩进格式写入。 每次写入后立即刷新文件内容确保实时更新。程序执行完毕后生成文件包含所有符合条件的内容。 示例输出文件内容
文件目录列表只包含中文文件名:Day01:
-笔记:——python第一课.txt-视频:——01-认识Python_1.mp4-代码:——比较运算符.pyDay02:
-课件:——第一章.pptx-视频:——02-第一个Python程序.mp4