本文主要是介绍Mac系统解除UnicodeDecodeError: ‘utf-8‘ codec can‘t decode byte 0x80 in position 3131: invalid start byte,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
file_path = "xxx"
files = os.listdir(file_path)
contents = []
for file in files:file_p = os.path.join(file_path, file)with open(file_p, 'r', encoding='utf-8') as f:a = f.read()[:200]contents.append(a)
在读取txt文件时发现总是报错
但是我的文件确定是使用utf-8编码的文件,查了一下原来是mac系统的系统文件ds_store搞怪
参考了这位博主提出的方法:UnicodeDecodeError: 'utf-8' codec can't decode byte 0x80 in position 3131: invalid start byte解决办法_dadan9的博客-CSDN博客
解决办法是:使用命令行进入当读取文件所在文件夹,删除.DS_Store文件。
1. 使用命令ls -a可以查看到.DS_Store文件
2. rm .DS_Store。
但我在删除后,通过ls -a发现也没有ds文件了,但发现还是不行,照样报错
后直接在代码加了一步:
print(files)
发现在代码运行时ds文件又自动产生了。
['.DS_Store', '1 2.txt', '1.txt']
于是提出解决方法:通过文件判断跳过ds文件。
for file in files: # 检查文件是否为txt文件 if os.path.splitext(file)[-1] == '.txt': file_p = os.path.join(file_path, file) with open(file_p, 'r', encoding='utf-8') as f: a = f.read()[:200] contents.append(a)
这篇关于Mac系统解除UnicodeDecodeError: ‘utf-8‘ codec can‘t decode byte 0x80 in position 3131: invalid start byte的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!