我试图读取文件夹中的文件,并使用下面的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>
答案 0 :(得分:0)
从我可以看到,您打开的文件之一包含非UTF8字符,因此如果没有关于其编码的适当信息,则无法将其读入字符串变量。
要处理此问题,您需要打开文件以便以二进制模式进行读取,并处理脚本中的问题。
您可以尝试d=f.read().split('\t')
:除了:在except:
分支中以二进制模式构造并重新打开文件。然后在脚本中处理它包含的非UTF8字符的问题。