簡體   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