如何用csv模块将CSV首列转小写并写入原文件?能否单命令实现且不使用Pandas?
问题解答
首先,无法通过单条命令完成该操作——因为要实现需求需要先读取原文件内容做处理,再将处理后的内容写回原文件,这是两个独立的IO操作,没法合并成单条命令。
正确实现代码
替换你现有读模式的代码逻辑,改成先读入处理再覆盖写入的流程,示例如下:
import csv # 读取文件并处理第一列转小写 processed_rows = [] with open(r'D:\folder\file1.csv', 'r', newline='', encoding='utf-8') as read_file: csv_reader = csv.reader(read_file, delimiter=';') for row in csv_reader: if row: # 跳过空行避免索引报错 row[0] = row[0].lower() processed_rows.append(row) # 将处理后的内容写回原文件 with open(r'D:\folder\file1.csv', 'w', newline='', encoding='utf-8') as write_file: csv_writer = csv.writer(write_file, delimiter=';') csv_writer.writerows(processed_rows)
关键注意点
- 路径前加
r前缀,避免转义字符引发的路径错误 - 加入
newline=''参数,保证CSV文件的换行符处理符合规范 - 增加空行判断,防止空行导致
row[0]索引报错 - 若文件体积过大,可改用逐行处理写入临时文件后替换原文件的方式,减少内存占用
内容的提问来源于stack exchange,提问作者Erandel Elvan
相关产品推荐
相关产品推荐

