如何在Python中按每10个文件为一组批量处理CSV文件
Python批量处理CSV文件:每10个文件为一组的高效分组方法

免费影视、动漫、音乐、游戏、小说资源长期稳定更新! 👉 点此立即查看 👈
本文详细讲解在Google Colab环境中,对有序命名的CSV文件(如M0000.csv至M0099.csv)进行智能分块处理的完整方案。通过Python代码实现每10个文件自动归为一组,读取全部文本内容并构建结构化数据容器,提升批量文件处理效率。
在进行大规模数据文件处理时,经常需要对有序文件进行分组批量操作。例如,当我们拥有从M0000.csv到M0099.csv共计100个CSV文件时,需要将它们按照每10个文件分为一组,分别读取每组中所有文件的文本内容。最终目标是构建一个名为all_text的Python列表,其中包含10个子列表,每个子列表存储对应文件组的全部文本数据。
这个需求看似简单,但实现时有一个关键点需要注意:真正的“每10个文件分组处理”需要基于顺序分组逻辑,而非简单的条件触发。初学者可能会考虑使用文件序号取模运算(如filenumber % 10 == 0),但这只能在第10、20、30等文件处触发操作,无法优雅地构建出结构清晰的分组容器。更专业、可读性更高的方法是利用整数除法运算确定每个文件所属的组别索引,并动态将其内容添加到对应的子列表中。
以下是为Google Colab和Google Drive环境设计的完整、可直接运行的Python解决方案:
import glob
import pandas as pd
dir_path = 'drive/My Drive/Tri/'
all_text = [] # 最终结构:all_text[i] 是第i组(共10组)的文本列表
# 按文件名排序确保M0000.csv, M0001.csv, ..., M0099.csv顺序正确
file_list = sorted(glob.glob(dir_path + "M*.csv"))
# 遍历所有匹配文件,按每10个一组组织
for idx, file in enumerate(file_list):
# 计算当前文件属于第几组(0-indexed:0~9)
group_idx = idx // 10
# 确保 all_text 至少有 group_idx + 1 个空列表
if len(all_text) <= group_idx:
all_text.append([])
print(f"Processing {file} → Group {group_idx} (file #{idx + 1})")
try:
# 读取CSV文件全部行作为纯文本(忽略列解析,适配fwf格式)
df = pd.read_fwf(file, header=None, on_bad_lines='skip', delimiter="\n")
# 提取每行文本(去除NaN和空白),转为字符串列表
texts_in_file = [str(row.iloc[0]).strip() for _, row in df.iterrows() if not pd.isna(row.iloc[0])]
all_text[group_idx].extend(texts_in_file)
except Exception as e:
print(f"⚠️ Warning: Failed to process {file}: {e}")
# 验证结果
print(f"\n✅ Done! Generated {len(all_text)} groups.")
for i, group in enumerate(all_text):
print(f"Group {i}: {len(group)} text lines (files {i*10}–{i*10+9})")
这段Python代码包含了多个值得深入理解的技术要点和最佳实践:
核心逻辑解析与优化建议
- 分组核心算法:
idx // 10是实现文件分组的关键表达式。它确保序号0–9的文件归入第0组,10–19归入第1组,依此类推,90–99归入第9组。这种整除运算完美实现了10组文件的结构化划分,逻辑清晰且执行高效。 - 动态列表管理:代码采用动态扩展策略,而非预先分配固定大小的列表。通过判断
all_text长度并适时添加新的空子列表,既避免了内存浪费,也防止了因文件数量变化可能导致的索引越界错误,增强了代码的健壮性。 - 文本读取策略:使用
pd.read_fwf(..., delimiter="\n")方法读取文件,将每一行视为独立的文本单元。这种方式特别适合固定宽度格式或需要保留原始行结构的纯文本内容,完全符合“保存所有文本”的业务需求。 - 边界情况处理:如果实际文件数量不足100个,建议在循环开始前使用
file_list = file_list[:100]进行截断操作,确保最后一组文件结构的完整性,避免因文件缺失导致的数据分组异常。 - 环境配置指引:在Google Colab中运行前,需要先挂载Google Drive,执行
from google.colab import drive; drive.mount('/content/drive')命令,确保文件路径访问权限正确配置。 - 性能优化方案:如果处理超大文件或追求极致性能,可以考虑使用Python内置的
open()函数配合逐行读取,替代pandas的DataFrame操作,这样可以显著减少内存开销并提升处理速度。
综上所述,这个Python批量处理CSV文件的方案结构清晰、鲁棒性强,不仅严格满足了all_text[0]到all_text[9]的索引需求,也为后续数据处理流程奠定了良好基础——无论是进行文本清洗、自然语言处理、特征向量化,还是批量保存操作,都可以方便地对每组文本数据进行统一处理。
立即学习“Python免费学习笔记(深入)”;
游乐网为非赢利性网站,所展示的游戏/软件/文章内容均来自于互联网或第三方用户上传分享,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系youleyoucom@outlook.com。
同类文章
centos下php内存如何设置
CentOS系统PHP内存限制调整:完整配置指南与优化技巧 在CentOS服务器环境中运行PHP应用程序时,合理设置内存限制是确保系统稳定性和性能优化的关键环节。正确配置PHP内存上限不仅能防止应用因内存不足而崩溃,还能有效避免服务器资源被过度占用。本文将为您提供一套详细、可操作的CentOS PH
CentOS Java备份恢复步骤是什么
CentOS Ja va备份与恢复步骤 在CentOS系统上维护Ja va环境,备份与恢复是系统管理员和开发者的必备技能。一套清晰、完整的操作流程,不仅能应对突发故障,更是系统迁移和版本升级的可靠保障。下面,我们就来梳理一下从备份到恢复,乃至重建的全套操作要点。 一 备份范围与准备 动手之前,先得明
CentOS Java内存管理如何配置
CentOS 上 Ja va 内存管理配置指南 在 CentOS 上部署 Ja va 应用,内存配置是个绕不开的技术活。配置得当,应用运行如丝般顺滑;配置不当,轻则性能抖动,重则服务宕机。今天,我们就来系统性地梳理一下,如何为你的 Ja va 应用“量体裁衣”,配置出最合适的内存参数。 一 核心原则
Debian中phpstorm如何使用插件市场
Debian 中 PhpStorm 使用插件市场的完整步骤 想在 Debian 上用好 PhpStorm,插件市场绝对是你的效率倍增器。下面这份操作指南,将帮你从安装到管理,玩转整个插件生态。 一 准备工作 万事开头先打基础。首先,你得确保 PhpStorm 已经在 Debian 系统上安家落户。通
Debian中phpstorm内存设置方法
Debian 中 PhpStorm 内存设置方法 想让 PhpStorm 在 Debian 上跑得更快更稳?合理配置内存是关键。下面这份指南,将帮你避开常见坑点,高效完成设置。 一 配置文件路径与推荐修改方式 最推荐的方式,是直接编辑 PhpStorm 的 vmoptions 文件。这个文件是 JV
- 日榜
- 周榜
- 月榜
1
2
3
4
5
6
7
8
9
10
1
2
3
4
5
6
7
8
9
10
相关攻略
2015-03-10 11:25
2015-03-10 11:05
2021-08-04 13:30
2015-03-10 11:22
2015-03-10 12:39
2022-05-16 18:57
2025-05-23 13:43
2025-05-23 14:01
热门教程
- 游戏攻略
- 安卓教程
- 苹果教程
- 电脑教程
热门话题

