文件读取中 */* 即data_root.glob(‘*/*‘)

该篇博客介绍了如何利用Python的glob模块遍历指定路径下的所有子目录,并获取其中的所有图片文件。通过data_root.glob('*/*'),可以获取flower_photos文件夹下daisy和dandelion两个子目录中的jpg图片文件。这个方法对于批量处理图片数据非常有用。

用glob获取所有文件并存入列表中。这里*的意思为获取所有文件,因此*/*的意思则为获取文件夹下的所有文件及它们的子文件。

文件路径若为

data_root:

         C:\Users\Administrator\.keras\datasets\flower_photos

其中文件架构若为

flower_photos

|

|————————daisy

         |——————5547758_eea9edfd54_n.jpg

|

|————————dandelion

         |——————7355522_b66e5d3078_m.jpg

all_image_paths = list(data_root.glob('*/*'))
print(all_image_paths )
#结果

[WindowsPath('C:/Users/Administrator/.keras/datasets/flower_photos/daisy/5547758_eea9edfd54_n.jpg'), 
WindowsPath('C:/Users/Administrator/.keras/datasets/flower_photos/dandelion/7355522_b66e5d3078_m.jpg')]

data_root.glob('*/*')中的*/*为读取子文件夹daisy和dandelion下的所有图片5547758_eea9edfd54_n.jpg、7355522_b66e5d3078_m.jpg

注意若使用 print(all_image_paths[0] )打印

'C:/Users/Administrator/.keras/datasets/flower_photos/daisy/5547758_eea9edfd54_n.jpg'

 

import pandas as pd # 文件路径列表 file_names = [ 'C:/Users/ASUS/Desktop/cl/Health_20_0.csv', 'C:/Users/ASUS/Desktop/cl/Chipped_20_0.csv', 'C:/Users/ASUS/Desktop/cl/Miss_20_0.csv', 'C:/Users/ASUS/Desktop/cl/Root_20_0.csv', 'C:/Users/ASUS/Desktop/cl/Surface_20_0.csv', 'C:/Users/ASUS/Desktop/cl/ball_20_0.csv', # 这个文件特殊处理 'C:/Users/ASUS/Desktop/cl/inner_20_0.csv', 'C:/Users/ASUS/Desktop/cl/outer_20_0.csv' ] # 列名列表 columns_name = [ 'Health_20_0', 'Chipped_20_0', 'Miss_20_0', 'Root_20_0', 'Surface_20_0', 'ball_20_0', 'inner_20_0', 'outer_20_0' ] # 初始化空的 DataFrame data_1 = pd.DataFrame() # 遍历文件列表 for index in range(len(file_names)): try: # 读取 CSV 文件,假设文件是以制表符分隔的 data = pd.read_csv(file_names[index], sep="\t", header=None, low_memory=False) # 提取 16-103440 行的数据 data1 = data.iloc[1015:202063] # 只保留前 8 列 data2 = data1.iloc[:, :8] # 提取第三列数据 data3 = data2.iloc[:, 2] # 将数据存储到 DataFrame 中 data_1[columns_name[index]] = data3.reset_index(drop=True)[:201048] except Exception as e: # **如果是 ball_20_0.csv,则单独处理** if "ball_20_0.csv" in file_names[index]: try: data = pd.read_csv(file_names[index], header=None, low_memory=False) # 提取 16-103440 行的数据 data1 = data.iloc[1015:202063] # 只保留前 8 列 data2 = data1.iloc[:, :8] # 确保 data2 至少有 3 列 if data2.shape[1] >= 3: data3 = data2.iloc[:, 2] data_1["ball_20_0"] = data3.reset_index(drop=True)[:201048] except Exception as e: print(f"Failed to process ball_20_0.csv manually: {e}") # 保存结果到 CSV 文件 data_1.to_csv('data_1.csv', index=False)详细解释这段代码在干嘛
06-19
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Alocus_

如果我的内容帮助到你,打赏我吧

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值