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

时间:2017-04-17 06:14:19

标签: 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]
    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>

1 个答案:

答案 0 :(得分:0)

从我可以看到,您打开的文件之一包含非UTF8字符,因此如果没有关于其编码的适当信息,则无法将其读入字符串变量。

要处理此问题,您需要打开文件以便以二进制模式进行读取,并处理脚本中的问题。

您可以尝试d=f.read().split('\t'):除了:在except:分支中以二进制模式构造并重新打开文件。然后在脚本中处理它包含的非UTF8字符的问题。