Google Colab中按每10个文件分组处理CSV并存储文本
需求与代码实现
我正在使用Google Colab,Drive中存储的文件如下:
M0000.csv M0001.csv M0002.csv ... M0099.csv
需要遍历这100个文件,每10个文件为一组进行处理,将每组10个文件中的所有文本存入一个列表,最终形成all_text数组,格式要求:
all_text[0] = 第1-10个文件的文本列表 ... all_text[9] = 第91-100个文件的文本列表
以下是我目前的遍历代码(尚未实现分组逻辑):
dir = 'drive/My Drive/Tri/' pd.options.display.max_colwidth = 5000 #Loop for all file for file in sorted(glob.glob(dir + "*.csv")): print(f"File: {file}") # Check the number of columns in the file df = pd.read_fwf(file, header=None, on_bad_lines='skip', delimiter="\n") # Loop inside each file for i in range(len(df)): # Loop over the rows ('i') #code to do print("All Text:", all_text)
修改后的实现代码
import glob import pandas as pd dir = 'drive/My Drive/Tri/' pd.options.display.max_colwidth = 5000 # 获取排序后的文件列表 sorted_files = sorted(glob.glob(dir + "*.csv")) all_text = [] # 每10个文件为一组进行处理 for i in range(0, len(sorted_files), 10): # 取出当前组的10个文件 group_files = sorted_files[i:i+10] group_text = [] for file in group_files: print(f"处理文件: {file}") # 读取文件内容,按行读取 df = pd.read_fwf(file, header=None, on_bad_lines='skip', delimiter="\n") # 将当前文件的所有行文本添加到组列表中 group_text.extend(df[0].tolist()) # 将当前组的文本列表加入all_text all_text.append(group_text) # 输出最终结果 print("所有分组文本:", all_text)
关键逻辑说明
- 先通过
sorted(glob.glob(...))获取按文件名排序的完整文件列表,确保分组顺序正确 - 使用
range(0, len(sorted_files), 10)实现每10个文件为一组的切片遍历 - 每组内初始化一个
group_text列表,收集该组所有文件的文本行 - 通过
df[0].tolist()将DataFrame的文本行转为列表,用extend合并到组列表中 - 处理完一组后,将
group_text添加到all_text数组中
内容的提问来源于stack exchange,提问作者Alamirah93
相关产品推荐
相关产品推荐

