如何在Jython中去除尾随换行符?适配Python 3方案需求
Jython处理CSV文件去除尾随换行符的解决方案
由于Jython基于Python 2.x的IO模型,不支持Python 3中open()函数的newline=''参数,要解决CSV写入时的尾随换行问题,可以试试以下几种适配方案:
方案1:通过csv模块指定lineterminator参数
这是最规范的处理方式,利用标准库csv模块的配置项控制行终止符:
import csv # 读取源CSV数据 with open('input.csv', 'r') as in_file: csv_reader = csv.reader(in_file) data_rows = list(csv_reader) # 写入目标CSV,手动指定行终止符 with open('output.csv', 'w') as out_file: csv_writer = csv.writer(out_file, lineterminator='\n') csv_writer.writerows(data_rows)
通过设置lineterminator='\n',可以强制writer使用单一换行符,避免生成多余的尾随空行。
方案2:手动统一处理换行符
如果不需要使用csv模块(不推荐,除非CSV格式极简单),可以手动清理每行的换行符后再统一写入:
# 读取并清理每行的换行符 with open('input.csv', 'r') as in_file: cleaned_lines = [line.rstrip('\r\n') for line in in_file] # 写入时用统一的换行符拼接 with open('output.csv', 'w') as out_file: # 最后一行是否添加换行可根据需求调整 out_file.write('\n'.join(cleaned_lines))
注意事项
- Jython的
open()函数不支持newline参数,请勿在Jython代码中使用该参数。 - 处理CSV文件优先使用
csv模块,避免手动解析时出现字段包含逗号、引号等格式问题。
内容的提问来源于stack exchange,提问作者shikha
相关产品推荐
相关产品推荐

