文字转csv档案中的日文字符(排列错误)

时间:2018-08-20 02:17:03

标签: python csv cjk

我想将文本文件转换为csv文件,但是,我的输出似乎与预期的非常不同。下面是示例:

text.txt(编码为“ UTF-8”)

text =

-0.00010712468871868001 gram_0:Coll:0::ん
-0.00010712468871868001 gram-1:Coll:-1::止まる
-0.00010712468871868001 gram-3:Coll:-3::帰る
-0.00010712468871868001 gram1:Coll:0::ん
-0.00010712468871868001 gram2:Coll:2::いく
-0.00010712468871868001 gram3:Coll:3::く

我的代码:

import csv

with open('text.txt', 'r', encoding="utf-8") as in_file:
    stripped = (line.strip() for line in in_file)
    lines = (line.split(",") for line in stripped if line)
    with open('log.csv', 'w', encoding="utf-8") as out_file:
        writer = csv.writer(out_file)
        writer.writerow(('title', 'intro'))
        writer.writerows(lines)

输出:

enter image description here

我的预期输出:

enter image description here

日语字符似乎越来越多。有人可以帮我吗?

1 个答案:

答案 0 :(得分:0)

Windows使用BOM表确定文本的编码,但是Python似乎无法自动生成BOM表,Windows可能会将输出文件识别为ANSI。尝试在内部out_file.write('\ufeff')之后直接添加with

来源:Adding BOM (unicode signature) while saving file in python