Python将行写入UCS-2 LE BOM编码的文本文件

时间:2019-04-20 09:41:57

标签: python encoding ucs2

我在Python 3.7中有一系列文本字符串。

现在我想将它们全部写入文本文件。问题在于,该文本文件必须使用UCS-2 LE BOM编码(这就是它在Notepad ++中的编码说明),否则该文件将无法继续处理。

如何在文本字符串保持可读性的情况下将文本字符串写入文件中?

    with open(textpath, "w", encoding='utf-16-le') as f:
    for line in newlines:
        f.write(line)

这不起作用,因为它会产生乱码...

1 个答案:

答案 0 :(得分:1)

尝试编写明确的BOM表:

with open(textpath, "w", encoding='utf-16-le') as f:
    f.write('\ufeff')
    for line in newlines:
        f.write(line)
        # Perhaps you also need to add a newline after each line?
        f.write('\n')

如果您的行已经有换行符,显然可以还原最后添加的内容。