python编程出现ValueError: not enough values to unpack (expected 2, got 1),可能是文件换行符搞的鬼

首先,先把错误的图片贴出来
在这里插入图片描述
1、为了准确起见,先把文件里的标点符号改为英文的
2、修改代码
在这里插入图片描述
修改为在这里插入图片描述
这里加一个换行符就行了
原因,因为每次读取文件的内容时,是有换行符的,如果没有\n,程序将执行
在这里插入图片描述
这一部分,当读取文件中的 ===== 时,each_line内容是 ======\n 而if这里写的是 ===== 两者不相等,接着往下执行,用冒号对 =====\n 进行分割再赋值,只会有一个值,赋给两个变量,自然会报错。
所以,关键之处是在换行符\n
底下附全部代码

f = open('record1.txt')

#初始化两个列表
boy = []
girl = []
#初始化一个计数器
count = 1

for each_line in f:
    if each_line != '=====\n':
        #这里进行字符出串分割操作
        role,line_spoken = each_line.split(':', 1)
        if role == 'Tom' :
            boy.append(line_spoken)
        if role == 'Tina':
            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

#保存第三段
#设置保存的文件名
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()
f.close()

看一下效果
在这里插入图片描述

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值