鱼C论坛

 找回密码
 立即注册
查看: 811|回复: 7

[已解决]文件的一个任务

[复制链接]
发表于 2020-6-5 21:22:05 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
小甲鱼上课的代码和我的一样,为什么我会报错? (python3.7版本)
自己编写代码时出现两种问题:
1.
Traceback (most recent call last):
  File "D:/Python-3.7.0/python-3.7.0/练习/新建文件夹/text.py", line 7, in <module>
    for each_line in f:
UnicodeDecodeError: 'gbk' codec can't decode byte 0xae in position 4: illegal multibyte sequence


2.
Traceback (most recent call last):
  File "D:/Python-3.7.0/python-3.7.0/练习/新建文件夹/text.py", line 9, in <module>
    (name,line_spoken) = each_line.split(':', 1)
TypeError: a bytes-like object is required, not 'str'


自己写的代码:

boy = []
girl = []
count= 1

f = open(r'D:\Python-3.7.0\python-3.7.0\练习\新建文件夹\text1.txt','rb')

for each_line in f:
    if each_line[:3] != '===' :
        (name,line_spoken) = each_line.split(':', 1)
        if name == '小甲鱼':
            boy.append(line_spoken)
        if name == '小客服':
            girl.append(line_spoken)
    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

f.close()
      
最佳答案
2020-6-5 21:22:56
本帖最后由 xiaosi4081 于 2020-6-5 21:29 编辑
boy = []
girl = []
count= 1

f = open(r'D:\Python-3.7.0\python-3.7.0\练习\新建文件夹\text1.txt','r',encoding='utf-8')

for each_line in f:
    if each_line[:3] != '===' :
        (name,line_spoken) = each_line.split(':', 1)
        if name == '小甲鱼':
            boy.append(line_spoken)
        if name == '小客服':
            girl.append(line_spoken)
    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

f.close()
1.用r模式,不是rb模式...
2.加上编码

求最佳
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2020-6-5 21:22:56 | 显示全部楼层    本楼为最佳答案   
本帖最后由 xiaosi4081 于 2020-6-5 21:29 编辑
boy = []
girl = []
count= 1

f = open(r'D:\Python-3.7.0\python-3.7.0\练习\新建文件夹\text1.txt','r',encoding='utf-8')

for each_line in f:
    if each_line[:3] != '===' :
        (name,line_spoken) = each_line.split(':', 1)
        if name == '小甲鱼':
            boy.append(line_spoken)
        if name == '小客服':
            girl.append(line_spoken)
    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

f.close()
1.用r模式,不是rb模式...
2.加上编码

求最佳
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 2 反对 0

使用道具 举报

发表于 2020-6-5 21:23:39 | 显示全部楼层
用r模式,不是rb模式...
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-6-6 16:11:00 | 显示全部楼层
我看你发求助帖不结账,是一种很不好的习惯
所以建议你赶快结账
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-6-6 20:56:45 | 显示全部楼层
我不明白为什么要加“encoding='utf-8'”?能说说这个代码有什么用吗?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-6-7 11:35:29 | 显示全部楼层
xiaosi4081 发表于 2020-6-6 16:11
我看你发求助帖不结账,是一种很不好的习惯
所以建议你赶快结账

求助帖还要结账?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-6-7 12:10:09 | 显示全部楼层

就是设最佳
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-6-7 15:37:21 | 显示全部楼层

我已经给了最佳
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-1-20 20:14

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表