2017-04-17 29 views
0

我正在嘗試讀取文件夾中的文件,並將每個文件的特定部分複製到使用下面的python code.but獲取錯誤的新文件中從文件夾中讀取大文件以複製到另一個文件時出現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

從我可以看到您打開包含非UTF8字符,所以也沒有關於適當的信息被讀入一個字符串變量中的一個文件其編碼。

要處理這個問題,您需要打開文件以二進制模式閱讀並在腳本中處理該問題。

您可以放入d=f.read().split('\t')進行嘗試:除了:在except:分支中構造並以二進制模式重新打開該文件。然後在腳本中處理它包含的非UTF8字符的問題。

相關問題