用python读取一个文件夹下的所有CSV文件里某一列数据中最大值,将此最大值所在行截取到新CSV文件中
在此,楼主恬不知耻地推荐微信公众号「Python极客思维」,公众号内会持续发布大厂各种高薪岗位,包括但不限于Python岗位(内推哦),欢迎诸位老铁切磋交流~~。模块提供的读写函数而不是普通的文件读写函数。另外,为了避免读写文件时发生错误,建议使用。需要注意的是,为了正确处理CSV文件中的逗号等标点符号,建议使用。语句来自动关闭文件。
·
import os
import csv
# 要读取的文件夹路径
folder_path = '/path/to/folder'
# 要读取的列的索引(0为第一列)
column_index = 2
# 存放最大值及其所在行的信息的元组
max_info = None
# 遍历文件夹中的所有CSV文件
for filename in os.listdir(folder_path):
if filename.endswith('.csv'):
file_path = os.path.join(folder_path, filename)
with open(file_path, 'r') as file:
reader = csv.reader(file)
# 跳过Header行
next(reader)
# 遍历每一行,找到最大值及其所在行
for i, row in enumerate(reader, start=1):
value = float(row[column_index])
if max_info is None or value > max_info[0]:
max_info = (value, i, filename)
# 将最大值所在行截取到新文件中
if max_info is not None:
value, row_index, filename = max_info
with open(os.path.join(folder_path, 'max_row.csv'), 'w', newline='') as file:
writer = csv.writer(file)
with open(os.path.join(folder_path, filename), 'r') as original_file:
reader = csv.reader(original_file)
# 写入Header行
writer.writerow(next(reader))
# 写入最大值所在行
for i, row in enumerate(reader, start=1):
if i == row_index:
writer.writerow(row)
break
else:
print('No CSV files found in folder or no valid values in column')
解决方案的关键步骤如下:
- 使用
os.listdir()
函数遍历文件夹中的所有文件; - 对于每个以
.csv
结尾的文件,使用csv.reader()
函数读取其中的行; - 遍历每一行,找到指定列中的最大值及其所在行号;
- 使用
csv.writer()
函数将最大值所在行写入新文件。
需要注意的是,为了正确处理CSV文件中的逗号等标点符号,建议使用csv
模块提供的读写函数而不是普通的文件读写函数。另外,为了避免读写文件时发生错误,建议使用with
语句来自动关闭文件。
在此,楼主恬不知耻地推荐微信公众号「Python极客思维」,公众号内会持续发布大厂各种高薪岗位,包括但不限于Python岗位(内推哦),欢迎诸位老铁切磋交流~~。

GitCode 天启AI是一款由 GitCode 团队打造的智能助手,基于先进的LLM(大语言模型)与多智能体 Agent 技术构建,致力于为用户提供高效、智能、多模态的创作与开发支持。它不仅支持自然语言对话,还具备处理文件、生成 PPT、撰写分析报告、开发 Web 应用等多项能力,真正做到“一句话,让 Al帮你完成复杂任务”。
更多推荐
所有评论(0)