为什么文件读/写会为文件添加额外的行?

时间:2014-12-16 16:31:50

标签: python file python-2.7 line-breaks

我想unescape源文件中的unicode字符:

source = open('source.csv', 'r')
target = open('target.csv', 'w')
target.write(source.read().decode('unicode_escape').encode('utf-8'))

但结果文件包含额外的换行符。例如,文本

u'\u0417a\u0439\u043c\u044b \u0412ce\u043c \u0436e\u043ba\u044e\u0449\u0438\u043c!\nO\u0434o\u0431\u0440e\u043d\u0438e 98%'

替换为

u'Зaймы Вceм жeлaющим!
Oдoбрeниe 98%'

了解源文本中有换行符号\n,但我希望保持原样而不实际转换为换行符。

1 个答案:

答案 0 :(得分:2)

你快到了:

for line in source:
    line = line.rstrip('\n')
    line = line.decode('unicode_escape').replace(u'\n', u'\\n').encode('utf8')
    target.write(line + '\n')