我尝试阅读多个文本文件,进行分词(使用jieba
),然后将结果分别保存到CSV文件中。它显示
AttributeError: '_io.TextIOWrapper' object has no attribute 'decode'
感谢任何人的帮助。
python代码是:
import jieba
import csv
import glob
list_of_files = glob.glob('C:/Users/user/Desktop/speech./*.txt')
for file_name in list_of_files:
FI = open(file_name, 'r')
FO = open(file_name, 'w')
seglist = jieba.cut(FI, cut_all=False)
w = csv.writer(FO)
w.writerows(seglist)
FI.close()
FO.close()
答案 0 :(得分:0)
您似乎需要将字节发送到剪切而不是文件对象
尝试使用此代码:
list_of_files = glob.glob('C:/Users/user/Desktop/speech./*.txt')
for file_name in list_of_files:
with open(file_name, 'rb') as f:
text = f.read()
seglist = jieba.cut(text, cut_all=False)
with open(file_name, 'w') as f:
w = csv.writer(f)
w.writerows(seglist)
答案 1 :(得分:0)
根据我从source code as example和jieba.cut definition阅读的内容,似乎jieba.cut
需要字符串作为参数。
但是你提供的是file
。
seglist = jieba.cut(FI.read(), cut_all=False)
修正了我所看到的问题。 ( FI.read()
是修复)。
顺便说一下,不要调用像FI
/ FO
这样的变量,这是常量或类的有效名称,但不是变量。
明确胜过隐式:优先选择:file_output
& file_input
。