Python自动化翻译脚本生成的CSV文件存在多余空格问题求助
解决CSV翻译文件多余空格问题
问题根源分析
- 原始文本(XML提取的法语文本、本地CSV的翻译内容)本身存在连续空格、制表符或换行符,
split()只能处理首尾空格,没法清理中间的多空格 - 手动拼接CSV内容时不小心引入了额外空格
- 写入CSV时没有对文本做统一的标准化处理
具体解决方法
1. 用正则统一清理所有空白字符
别用split(),直接用正则把任意连续的空白(空格、制表符、换行)替换成单个空格,再去除首尾空格。写个工具函数:
import re def clean_text(text): # 替换所有连续空白为单个空格,再去掉首尾空格 return re.sub(r'\s+', ' ', text).strip()
不管是从XML里提取的标题,还是从本地CSV读出来的翻译,写入应用内CSV前都先过一遍这个函数。
2. 用Python内置csv模块写入文件
别自己手动用逗号拼字符串写CSV,用csv模块自动处理格式,避免手动拼接带来的空格问题:
import csv # 假设已经拿到标准化后的法/英文翻译对 fr_text = clean_text(french_title) en_text = clean_text(english_translation) # 追加到应用内CSV with open('app_translations.csv', 'a', newline='', encoding='utf-8') as csv_file: writer = csv.writer(csv_file) writer.writerow([fr_text, en_text])
3. 提取XML文本时同步清理
从XML里拿标题的时候,直接把隐藏的换行、制表符一起清掉:
from xml.etree import ElementTree as ET tree = ET.parse('your_source.xml') title_elem = tree.find('.//title') # 先清理再使用 french_title = clean_text(title_elem.text)
完整流程提醒
- 读取本地翻译CSV时,对每一行的法、英文文本都做标准化处理
- 提取XML标题后立即用
clean_text()清理 - 匹配到对应的英文翻译后,同样做标准化
- 全程用
csv模块读写CSV文件,杜绝手动拼接字符串
内容的提问来源于stack exchange,提问作者Jérémie
相关产品推荐
相关产品推荐

