Python读取txt/csv文件时交换指定列位置并保存的实现方法
CSV/TXT文件列互换实现方法
问题说明
处理每行格式为字符型值, 整数型值, 字符型值的csv/txt文件时,需要将第2列与第3列互换,输出格式为字符型值, 字符型值, 整数型值的新文件。
原尝试代码未生效的核心原因:直接读取到的line是完整字符串,并非按逗号拆分后的字段列表,直接通过下标操作的是字符串的单个字符,无法实现整列互换。
可运行实现代码
仅控制台输出调整后内容
with open('源文件路径.txt', 'r', encoding='utf-8') as f: for line in f: # 去除换行符后按逗号拆分字段 fields = line.rstrip('\n').split(',') # 交换第2、第3列(下标从0开始,对应索引1和2) fields[1], fields[2] = fields[2], fields[1] # 拼接为字符串输出 print(','.join(fields))
直接保存为新文件
如果需要直接生成调整后的新文件,可使用以下写法:
with open('源文件路径.txt', 'r', encoding='utf-8') as f_in, open('输出文件路径.txt', 'w', encoding='utf-8') as f_out: for line in f_in: fields = line.rstrip('\n').split(',') fields[1], fields[2] = fields[2], fields[1] # 写入新文件时补回换行符 f_out.write(','.join(fields) + '\n')
代码说明
- 用
with上下文管理器操作文件,无需手动调用close方法,会自动处理文件关闭,避免资源泄漏 - 先通过
split(',')将每行字符串拆分为字段列表,再执行列交换操作 - 交换完成后通过
join方法重新拼接为字符串输出或写入文件
内容的提问来源于stack exchange,提问作者merchmallow
相关产品推荐
相关产品推荐

