我正在尝试使用os和glob模块访问带有.txt文件的文件夹,但是当我尝试读取()文件时,该文件夹会卡住。我可以正确列出文件名,但是每当我尝试访问文本时,我都会收到UnicodeDecodeError。
目标是创建一个dict,键为文件名,列表中文本文件中的单词为值。我确定我的大部分代码都是垃圾,但是这个特定的问题是我在atm上的想法
我尝试单独使用glob和os-module,似乎没有任何效果。我已经成功分别打开了每个文件,但是当我尝试使用模块时(这是必需的),我得到了错误。我已打开所有文档,以确保正确的UTF-8编码。
从文件中创建列表的程序:
def indeks_ord(tekstfil):
with open(tekstfil, "r", encoding="utf-8") as f:
f = f.read()
f = f.split()
liste = []
for words in f:
words = words.strip(",.!=/&-:;")
words = words.lower()
if words in liste:
continue
else:
liste.append(words)
return liste
获取错误的程序。打印长度功能只是暂时的,还有很多工作要做-但是它可以解决问题。
import glob
import os
import indeksfil
def indeks_dict():
path = "Tekstfiler"
fuld_dict = {}
for filename in glob.glob(os.path.join(path, '*.txt')):
print(len(indeksfil.indeks_ord(filename)))
我希望程序从现在开始打印所有列表。错误消息粘贴在下面:
Traceback (most recent call last):
File "/Users/myname/Dropbox/dir/dict_fil.py", line 12, in <module>
indeks_dict()
File "/Users/myname/Dropbox/dir/dict_fil.py", line 9, in indeks_dict
print(len(indeksfil.indeks_ord(filename)))
File "/Users/myname/Dropbox/di/indeksfil.py", line 4, in indeks_ord
f = f.read()
File "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/codecs.py", line 322, in decode
(result, consumed) = self._buffer_decode(data, self.errors, final)
UnicodeDecodeError: 'utf-8' codec can't decode byte 0xf8 in position 156: invalid start byte