29讲课堂例子问题
f = open(r'D:\Program Files\1\record.txt')boy = []
girl = []
count = 1
for each in f:
if each[:6] != '======':
(role, line) = each.split(':', 1)
if role == '小甲鱼':
boy.append(line)
if role == '小客服':
girl.append(line)
else:
file_name_boy = 'boy' + str(count) + '.txt'
file_name_girl = 'girl' + str(count) + '.txt'
boy_file = open(file_name_boy, 'w')
girl_file = open(file_name_girl, 'w')
boy_file.writelines(boy)
girl_file.writelines(girl)
boy_file.close()
girl_file.close()
boy = []
girl = []
count += 1
file_name_boy = 'boy' + str(count) + '.txt'
file_name_girl = 'girl' + str(count) + '.txt'
boy_file = open(file_name_boy, 'w')
girl_file = open(file_name_girl, 'w')
boy_file.writelines(boy)
girl_file.writelines(girl)
boy_file.close()
girl_file.close()
运行之后总是报错;
===================== RESTART: D:\Program Files\1\0826_1.py ====================
Traceback (most recent call last):
File "D:\Program Files\1\0826_1.py", line 7, in <module>
for each in f:
UnicodeDecodeError: 'gbk' codec can't decode byte 0xae in position 25: illegal multibyte sequence
>>>
这是哪里出问题了?新手求解答 open高数加一个参数
encoding=''utf-8'' 昨非 发表于 2020-8-26 20:16
open高数加一个参数
encoding=''utf-8''
大佬,为什么当初小甲鱼的没有加这种编码格式就运行成功了,是版本问题吗? 有可能是操作系统版本不一样吧 2087721266 发表于 2020-8-26 20:28
大佬,为什么当初小甲鱼的没有加这种编码格式就运行成功了,是版本问题吗?
因为python变了#定义切分函数
def spilt_file(file_name):
f = open(file_name,"r",encoding='UTF-8')
#关键点,编码方式
亲测,就改个这就可以了 昨非 发表于 2020-8-26 21:27
因为python变了
亲测,就改个这就可以了
试过了可以,谢谢大佬
我做29讲课后习题
1. 编写一个程序,比较用户输入的两个文件,如果不同,显示出所有不同处的行号与第一个不同字符的位置。
代码清单:
def file_compare(file1, file2):
f1 = open(file1)
f2 = open(file2)
现在是直接open(file2)也能成功打开{:5_104:}而这个定义切分函数就要open(file_name,"r",encoding='UTF-8')才可以成功运行,现在就是有点懵 2087721266 发表于 2020-8-26 21:56
试过了可以,谢谢大佬
我做29讲课后习题
1. 编写一个程序,比较用户输入的两个文件,如果不同,显示出 ...
说不清楚,可能是因为两道题里txt文件的编码格式不同造成的
页:
[1]