如何使用Python按索引位置规则重格式化TXT文件以适配pandas读取
问题原因
- 你用
for line in infile读取行时,每一行的末尾都会自带换行符\n,拼接]的时候自然就加到了换行符之后,出现括号错位的问题 - 原始文本还存在前导空格、残留的
][分隔符、末尾不完整的]符号,需要先清理这些无效字符再做格式化
修正后的代码
in_path = "你的输入文件路径.txt" out_path = "你的输出文件路径.txt" def format_line(raw_line): # 第一步:清理无效字符:去除前后空白、换行符,删除残留的[]符号 cleaned_line = raw_line.strip().strip('[]') # 空行直接跳过 if not cleaned_line: return "" elements = cleaned_line.split(',') # 给前两个元素加双引号,同时去掉可能已经存在的旧引号 for k in range(2): elements[k] = f'"{elements[k].strip()}"' new_line = ','.join(elements) # 拼接括号和换行符,保证每行格式统一 return f'[{new_line}]\n' # 用with语句自动管理文件句柄,无需手动调用close with open(in_path, 'r', encoding='utf-8') as infile, open(out_path, 'w', encoding='utf-8') as outfile: for line in infile: formatted = format_line(line) if formatted: outfile.write(formatted)
关键修改说明
- 先通过
strip()方法去除每行前后的空白、原始换行符,以及残留的[、]符号,避免旧格式干扰格式化逻辑 - 处理完格式后统一补充换行符,保证括号和数据在同一行
- 新增空行判断,避免输出多余空行
- 用with语句管理文件读写,避免出现文件漏关的异常问题
内容的提问来源于stack exchange,提问作者Shivash Mishra
相关产品推荐
相关产品推荐

