|
|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
@小甲鱼 29讲是文件操作,课上讲的是先读取record.txt文件并分别写入6个文件,由于没有找到record.txt文件,我自己把内容打了进来,并按如下编写了程序:
- #_*_ coding=utf-8 _*_
- f1 = open('record.txt')
- boy = 0
- girl = 0
- boylist = ['','','']
- girllist = ['','','']
- for eachline in f1:
- if eachline[:6] == '======':
- boy += 1
- girl += 1
- elif eachline[:3] == '小甲鱼':
- boylist[boy] += eachline[4:]
- elif eachline[:3] == '小客服':
- girllist[girl] += eachline[4:]
- f1.close()
- for i in range(3):
- f = open('boy_'+str(i+1)+'.txt','w')
- f.write(boylist[i])
- f.close()
- for i in range(3):
- f = open('girl_'+str(i+1)+'.txt','w')
- f.write(girllist[i])
- f.close()
复制代码
结果发生错误:
Traceback (most recent call last):
File "C:\Python34\test.py", line 7, in <module>
for eachline in f1:
UnicodeDecodeError: 'gbk' codec can't decode byte 0xbc in position 21: illegal multibyte sequence
只有把record.txt存成'ansi'编码才能正常执行,问题是已有的txt文件会有其他编码形式,如何在程序中适应UTF-8或unicode编码的文本文件。
发现在open中加入encodeing='UTF-8'是可以正常打开的,问题是怎么预先知道文件的编码,看来只能一个一个的试,用版主说的异常判断来确定哪个是正确的。
|
|