繁体   English   中英

AttributeError:'_io.TextIOWrapper'对象没有属性'decode'

[英]AttributeError: '_io.TextIOWrapper' object has no attribute 'decode'

我正在尝试读取多个文本文件,进行分词(使用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()

似乎您需要发送要剪切的字节而不是文件对象

请尝试以下代码:

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)  

从我从源代码中获得的示例jieba.cut定义的内容jieba.cutjieba.cut似乎需要字符串作为参数。

但是您要提供file的实例。

seglist = jieba.cut(FI.read(), cut_all=False)

从我看到的问题修复了该问题。 FI.read()是解决方案 )。


顺便说一句,不要调用像FI / FO这样的变量,这是常量或类的有效名称,但不是变量。

显式胜于隐式 :喜欢像file_outputfile_input这样的东西。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM