我写了一个GUI,允许日语输入,当你去文件>解析写入文本文件。然后该文本文件通过MeCab运行,在这两个词之间插入空格。之后,它应该再次写入文本文件,因此它可以显示在另一个GUI窗口中。Python 2.7 - 如何将MeCab解析的信息写入文本文件?
我遇到的问题是它不想将解析的数据写入文本文件。第一次写它没有问题。此外,它将解析的信息打印到IDLE也没有问题。下面是语法分析器和错误:
#!/usr/bin/python
# -*- coding: <utf-8> -*-
import sys
import MeCab
import codecs
read_from = open("pholder.txt").read()
mecab = MeCab.Tagger("-Owakati")
output = mecab.parse(read_from)
print output
text = output
write_to = codecs.open("pholder.txt", "w", "utf-8")
write_to.write(text)
write_to.close()
Traceback (most recent call last):
File "C:\...\mecabSpaces.py", line 16, in <module>
write_to.write(text)
File "C:\...\codecs.py", line 691, in write
return self.writer.write(data)
File "C:\...\codecs.py", line 351, in write
data, consumed = self.encode(object, self.errors)
UnicodeDecodeError: 'ascii' codec can't decode byte 0xe4 in position 0: ordinal not in range(128)
'mecab.parse()'返回什么?如在,如果你在命令提示符下键入'mecab.parse(read_from)',你会得到什么? –
解析函数解析Tagger函数告诉它解析的方式。这就是我的理解。 – jeffberhow
对不起,我不知道如何评论分页符。这将是一个单行解析,它将用空格分隔测试:print MeCab.Tagger(' - Owakati')。parse('testtesttest') – jeffberhow