[英]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.