13.处理指定目录下的所有文件夹里的特定文件

1.命题要求

1)对于指定4K_phone目录下,有好几个文件夹,比如quality_15,quality_17,quality_19,等等quality_xx。获取每一个quality_xx文件夹里的1_teacher.txt
例如,./4K_phone/quality_15/1_teacher.txt、./4K_phone/quality_17/1_teacher.txt 和 ./4K_phone/quality_19/1_teacher.txt,
2)对每一个文件夹里的特定文件1_teacher.txt的第2列和第3列数据进行处理,并将处理后数据保存到一个以当前文件夹名称命名的txt文件中。
例如,如果当前文件夹的名称是 quality_15,那么数据将被保存到名为 4K_phone_quality_15.txt 的文件中。

电脑目录结构图:
在这里插入图片描述
在vscode 编辑器里的树状图:
在这里插入图片描述
1_teacher.txt 文档里的内容形式
在这里插入图片描述

2.代码实现

import os
import glob'''
breif: 统计不同quality level下,transmission time,结果保留2位小数
输入:服务器上report文件夹里的各个实验数据txt文件 ,such as 1_teacher.txt
输出: processed_data.txt
注意:程序会对传输延迟小于35ms的数据进行过滤处理
'''
# 获取当前脚本所在的目录路径
current_directory = os.path.dirname(os.path.abspath(__file__))
# 切换到当前目录
os.chdir(current_directory)# 指定目录
subdirectories = os.listdir(current_directory)
#打印出 ./4K_phone 目录下的所有子文件夹的名称。
print(subdirectories)
# 获取所有1_teacher.txt文件的路径
file_paths = glob.glob(os.path.join(current_directory, '*/1_teacher.txt'))
# print(file_paths)# 遍历所有找到的文件路径
for file_path in file_paths:# 获取当前目录的名称current_dir = os.path.basename(os.path.dirname(file_path))# 设置目标文件名process_filename = f'4K_phone_{current_dir}.txt'# 打开目标文本文件with open(process_filename, 'w') as output_file:# 打开原始文本文件with open(file_path, 'r') as file:for line in file:# 拆分每行数据data = line.strip('\n').split(',')# 获取第一种和第三种数据类型的值data_type_2 = int(data[2])  # display qualitydata_type_3 = float(data[3])  # transmission time# 筛选数据transmission_time_limit = 35.0  # 为了控制两者之和不要过大,筛选数据if data_type_2 > 0 and data_type_3 > 0 and data_type_3 < transmission_time_limit:# 添加映射值到第三种数据类型上,保留2为小数new_data_type_3 = round(data_type_3, 2)# 将处理后的数据写入目标文本文件output_file.write(f'{new_data_type_3}\n')

这段代码会遍历指定目录下的所有文件夹,对于每个文件夹,它都会找到 1_teacher.txt 文件,并将数据保存到一个以当前文件夹名称命名的文件中。
在这里插入图片描述

3.注意点

如果 file_paths 列表是空的,那么可能的原因是:

./4K_phone 目录不存在,或者它的名字被错误地写成了其他名字。
./4K_phone 目录下没有任何子文件夹。
./4K_phone 的子文件夹下没有 1_teacher.txt 文件。
可以使用以下代码来检查 ./4K_phone 目录下的子文件夹:

import osdirectory = './4K_phone'
subdirectories = os.listdir(directory)
print(subdirectories)

这将打印出 ./4K_phone 目录下的所有子文件夹的名称。

然后,可以检查每个子文件夹下是否存在 1_teacher.txt 文件

for subdir in subdirectories:subdirectory_path = os.path.join(directory, subdir)if os.path.isdir(subdirectory_path):file_path = os.path.join(subdirectory_path, '1_teacher.txt')if os.path.isfile(file_path):print(f'Found {file_path}')else:print(f'{file_path} does not exist')

这将为每个子文件夹打印出是否存在 1_teacher.txt 文件。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/571057.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

基于nodejs+vue饮食分享平台python-flask-django-php

本系统采用了nodejs语言的express框架&#xff0c;数据采用MySQL数据库进行存储。进行开发设计&#xff0c;功能强大&#xff0c;界面化操作便于上手。本系统具有良好的易用性和安全性&#xff0c;系统功能齐全&#xff0c;可以满足饮食分享管理的相关工作。 前端技术&#xff…

前端面试题---->JavaScript

const声明的对象属性和数组的值可以被修改吗&#xff1f;为什么 原因&#xff1a;当使用const声明一个对象或数组时&#xff0c;实际上是保证了对象或数组的引用不会被修改&#xff0c;但对象或数组本身的属性或元素是可以被修改的。这是因为const只能保证指向的内存地址不变&a…

30---SDRAM电路设计

视频链接 SDRAM电路设计01_哔哩哔哩_bilibili SDRAM电路设计 1、SDRAM简介 SDRAM&#xff1a;Synchronous Dynamic Random Access Memory&#xff0c;同步动态随机存储器。 同步是指其时钟频率和CPU前端总线的系统时钟相同&#xff0c;并且内部命令的发送与数据的传输都以…

设计模式深度解析:深入浅出的揭秘游标尺模式与迭代器模式的神秘面纱 ✨

​&#x1f308; 个人主页&#xff1a;danci_ &#x1f525; 系列专栏&#xff1a;《设计模式》 &#x1f4aa;&#x1f3fb; 制定明确可量化的目标&#xff0c;坚持默默的做事。 深入浅出的揭秘游标尺模式与迭代器模式的神秘面纱 开篇&#xff1a; 欢迎来到设计模式的神秘…

Leetcode 3.26

Leetcode Hot 100 一级目录1.每日温度 堆1.数组中的第K个最大元素知识点&#xff1a;排序复杂度知识点&#xff1a;堆的实现 2.前 K 个高频元素知识点&#xff1a;优先队列 一级目录 1.每日温度 每日温度 思路是维护一个递减栈&#xff0c;存储的是当前元素的位置。 遍历整个…

iphone11promax硬件参数

1.截图 2.震动和静音方面还是不行的 3.相关的电子参数信息 4.出处 【苹果iPhone 11 Pro Max 4GB/64GB/全网通参数】Apple iPhone 11 Pro Max 4GB/64GB/全网通手机参数_规格_性能_功能-ZOL中关村在线

批量删除 rabbitmq中随机队列

批量删除 amq.gen–* 随机队列 操作错误产生了无效随机队列&#xff0c;需要批量删除 过滤列出指定amq.gen–队列 # 列出 指定 vhost/qq 以amq.gen开头的所有队列 rabbitmqctl list_queues --vhost / | grep ^amq.gen-# 批量删除队列 #由于list_queues会列出队列名称以及对应…

2022 年甘肃省职业院校技能大赛 高职组 网络系统管理竞赛 网络构建模块试题

2022 年甘肃省职业院校技能大赛 高职组网络系统管理竞赛 网络构建模块试题 目 录 考试说明… 3 任务描述… 3 任务清单… 3 &#xff08;一&#xff09;基础配置… 3 &#xff08;二&#xff09;有线网络配置… 4 &#xff08;三&#xff09;无线网络配置… 6 &#xff08;四&a…

找茬游戏小程序源码系统:封面广告+插屏广告 自带流量主低成本 带完整的安装代码包以及搭建教程

近年来&#xff0c;小程序市场持续火爆&#xff0c;各类小程序层出不穷。找茬游戏小程序作为其中的一种&#xff0c;以其独特的游戏形式和良好的用户体验&#xff0c;吸引了大量用户。然而&#xff0c;对于许多开发者和商家来说&#xff0c;开发一款高质量的找茬游戏小程序并非…

ArcGIS二次开发(一)——搭建开发环境以及第一个简单的ArcGIS Engine 程序

Arcgis10.2、Arcgis Engine10.2与Microsoft Visual Studio 2012的版本进行安装 1、推荐教程与安装包2、安装顺序3、安装成功测试VS新建项目可以创建ArcGIS项目&#xff0c;并且在VS中拖拽ArcGIS工具 4、搭建第一个简单的ArcGIS Engine 程序 ArcEngine和VS版本是有对应的&#x…

让你的Mac重焕新生!CleanMyMac X软件2024全面评测

让你的Mac重焕新生&#xff01;CleanMyMac X全面评测&#xff1a;一招解决卡顿、内存不足等问题&#xff0c;让你的Mac速度飞起来&#xff01; 在当今数字化时代&#xff0c;我们的生活和工作中离不开电脑的支持。 而对于Mac用户来说&#xff0c;如何保持电脑的流畅运行和高效…

【第二部分--Python之基础】02

二、运算符与程序流程控制 1、运算符 1.1 算术运算符 算术运算符用于组织整数类型和浮点类型的数据&#xff0c;有一元运算符和二元运算符之分。 一元算术运算符有两个&#xff1a;&#xff08;正号&#xff09;和-&#xff08;负号&#xff09;&#xff0c;例如&#xff1…