来自genfromtxt的python 3日本字母

时间:2018-04-02 19:58:09

标签: python genfromtxt cjk

我正在开发一个程序,它使用来自.txt文件的数据并对所述数据进行处理。数据主要包含拉丁字符,但有时也有 日文字符。这就是我想要做的事情:

# -- coding: UTF-8 --
import numpy as np
test=open("test.txt", "r")
test2=open("list.txt", "w")

test2.write("# ")
for line in test:
    line2=line.replace('""', "(None)")
    line3=line2.replace('"', "")
    line4=line3.replace(" ", "_")
    line5=line4.replace(",", " ")
    test2.write(line5)

它完美无缺,但有些日文字符会导致问题。有趣的是,像ゲ,ノ,セ,ト或ク这样的人物没什么大不了的,但这些人物是:いがか。
只要其中一个隐藏在test.txt中的某个地方,就会出现以下错误消息:

UnicodeDecodeError                        Traceback (most recent call last) C:\Users\syhon\Documents\DV-Liste\ListeV2.0\ListeV2.py in <module>()
    196
    197 test2.write("# ")
--> 198 for line in test:
    199     line2=line.replace('""', "(None)")
    200     line3=line2.replace('"', "")

C:\Users\syhon\Anaconda3\lib\encodings\cp1252.py in decode(self, input, final)
     21 class IncrementalDecoder(codecs.IncrementalDecoder):
     22     def decode(self, input, final=False):
---> 23         return codecs.charmap_decode(input,self.errors,decoding_table)[0]
     24
     25 class StreamWriter(Codec,codecs.StreamWriter):

UnicodeDecodeError: 'charmap' codec can't decode byte 0x81 in position 6281: character maps to <undefined>

然而,我能够发现我可以在python 2中没有问题地打印所述字符,但不能在python 3中打印。那么,是否可以在python 3中解码这些字符?

1 个答案:

答案 0 :(得分:0)

test.txt如何编码?我怀疑它是使用utf-8编码的。如果是这样,请在Python3中尝试:

test=open("test.txt", "r", encoding="utf-8")