繁体   English   中英

将法语文本文件读入列表中的项目-Python

[英]Reading french text files into items in a list - Python

我想阅读一堆法文文本文档,并将每个文本文档的内容作为一个项目存储在列表中,以便稍后计算td-idf得分(通过计算单词等)。

这是我开始代码的方式,重点是分别读取每个文档的全文作为字符串:

import os, re
import glob
import operator

file_names = glob.glob(os.path.join("/Corpus", u'*'))
documents=["" for x in file_names]
files=["" for x in file_names]
for infile in (glob.glob(os.path.join("/Corpus", u'*'))):
    file = (open(infile,"r",encoding="utf-8"))
    data = file.read()
    print (data)

当我执行此操作时,他能够打印一些文本,但是随后出现以下错误:

UnicodeDecodeError: 'utf-8' codec can't decode byte 0xe2 in position 10: invalid continuation byte

我显然是用utf-8编码打开文件,我不明白我在做什么错。

此外,对于任何有关如何存储包含列表中文档中所有文本的变量data建议,我将不胜感激。 以下解决方案不起作用:

documents.append(data)

谢谢

您尝试读取的文件似乎未以UTF-8编码。 最好是尝试找出用于保存文件的编码。 如果不可能,那么最好的办法是尝试几种编码,然后看看哪种编码有效(请参阅https://docs.python.org/3/library/codecs.html#standard-encodings )。

对于第二个问题:documents.append(data)应该起作用。 您的错误是您没有预先初始化Python列表。 这就是您所需要的:

documents = []
for infile in file_names:
    ...
    documents.append(data)

最后提示:您正在打开文件,但不关闭它们。 with运算符可以在这里为您with帮助。

暂无
暂无

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

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