You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.28 04:57:18