Python 3.x 从文件夹中读取大文件以复制到另一个文件时出现python错误

Python 3.x 从文件夹中读取大文件以复制到另一个文件时出现python错误,python-3.x,Python 3.x,我试图读取文件夹中的文件,并使用下面的python代码将每个文件的特定部分复制到一个新文件中 import glob file=glob.glob("C:/Users/prasanth/Desktop/project/prgms/rank_free1/*.txt") fp=[] for b in file: fp.append(open(b,'r')) s1='' for f in fp: d=f.read().split('\t') rank=d[0] appn

我试图读取文件夹中的文件,并使用下面的python代码将每个文件的特定部分复制到一个新文件中

import glob
file=glob.glob("C:/Users/prasanth/Desktop/project/prgms/rank_free1/*.txt")
fp=[]
for b in file:
    fp.append(open(b,'r'))
s1=''
for f in fp:
    d=f.read().split('\t')
    rank=d[0]
    appname=d[1]
    appid=d[2]
    s1=appid+'\n'
file=open('C:/Users/prasanth/Desktop/project/prgms/appids_file.txt','a',encoding="utf-8")
    file.write(s1)
    file.close()
我收到下面的错误消息

enter code here
Traceback (most recent call last):
 File "appids.py", line 8, in <module>
d=f.read().split('\t')
File "C:\Users\prasanth\AppData\Local\Programs\Python\Python36-
32\lib\encodings\cp1252.py", line 23, in decode
return codecs.charmap_decode(input,self.errors,decoding_table)[0]
UnicodeDecodeError: 'charmap' codec can't decode byte 0x8f in position 
12307: character maps to <undefined>
在此处输入代码
回溯(最近一次呼叫最后一次):
文件“appids.py”,第8行,在
d=f.read().split('\t')
文件“C:\Users\prasanth\AppData\Local\Programs\Python\Python36-
32\lib\encodings\cp1252.py“,解码中的第23行
返回编解码器.charmap\u解码(输入、自身错误、解码表)[0]
UnicodeDecodeError:“charmap”编解码器无法解码位置中的字节0x8f
12307:角色映射到

从我看到的情况来看,您正在打开的一个文件包含非UTF8字符,因此如果没有关于其编码的适当信息,就无法将其读入字符串变量

要处理这个问题,您需要以二进制模式打开文件进行读取,并解决脚本中的问题

您可以在try:except:construct中放入
d=f.read().split('\t')
,然后在
except:
分支中以二进制模式重新打开文件。然后在脚本中处理包含非UTF8字符的问题