gpt4 book ai didi

Python 2.7 - 如何将 MeCab 解析的信息写入文本文件?

转载 作者:行者123 更新时间:2023-11-28 23:04:11 26 4
gpt4 key购买 nike

我编写了一个 GUI,它允许日文输入,当您转到文件时 > 解析写入文本文件。然后该文本文件通过 MeCab 运行,其中在单词之间放置空格。之后应该再次写入文本文件,以便在另一个 GUI 窗口中显示。

我遇到的问题是它不想将解析后的数据写入文本文件。第一次写没问题。此外,它将解析的信息打印到 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)

最佳答案

解析出来的数据不是unicode,是字节串。

因此,当您尝试将数据写入文件时,它会在编码utf-8之前尝试将其解码为unicode .由于您的默认编解码器是 ascii,但您实际上使用的是 utf-8,因此它会在字节值为 128 或更高的第一个字符处阻塞。

您应该.decode('utf-8') 返回的数据,或者使用返回 unicode 数据的 mecab 方法。

关于Python 2.7 - 如何将 MeCab 解析的信息写入文本文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7892007/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com