使用Python修改txt文件表格列顺序时输出多余空行如何解决
问题根因
多余空白行是双重换行导致的:
- 用
list(f)读取文本文件时,得到的每一行内容末尾会保留原始文件自带的换行符\n - 按空格拆分后,最后一列
row[4]本身就携带了原始的换行符 - 代码中又手动在每行末尾额外拼接了一个
\n,最终每行结尾存在两个连续换行符,渲染时就会多出一个空白行
另外原代码存在两个可优化的问题:
- 初始化
table时用[xxx]*len(rows)的写法属于浅拷贝,后续如果修改嵌套元素会出现联动错误 - 手动按索引给6倍长度的table列表赋值的逻辑过于冗余,可维护性差
修正后的实现方案
不需要预先初始化固定长度的列表,逐行处理后重组列顺序即可,同时自动过滤原始文件中的空行:
# 替换为实际文件路径 input_file = "C:\\path\\to\\input\\file.txt" output_file = "C:\\path\\to\\output\\file.txt" with open(input_file, "r") as f: # 读取时去掉每行首尾空白,过滤空行 raw_lines = [line.strip() for line in f if line.strip()] result = [] for line in raw_lines: # 不带参数的split会自动按任意空白字符分割,兼容多空格、制表符场景 columns = line.split() # 调整列顺序:id、x坐标、y坐标、name、value new_line = f"{columns[0]} {columns[2]} {columns[3]} {columns[1]} {columns[4]}\n" result.append(new_line) with open(output_file, "w") as o: o.writelines(result)
效果说明
运行后输出文件每行只会保留一个换行符,不会出现多余空白行,列顺序符合调整要求,同时还能兼容原始数据中存在的多余空格、空行等异常格式。
内容的提问来源于stack exchange,提问作者Alessandro
相关产品推荐
相关产品推荐

