python txt文件切割问题

最近看小甲鱼视频,学到了文件切割方面的知识,尤其是split的用法,中间也出现了许多的问题
问题一:文件导入,路径一定要记得要用双\或者/,否则会出现:
OSError: [Errno 22] Invalid argument: 'E:\桌面\Python\record\record.txt’
型错误。
问题二:文件切割,一定要仔细而又细心检查自己的txt文件,标点中的‘:’一定要保持一致,换行也要记得
否则会出现
ValueError: not enough values to unpack (expected 2, got 1)
型错误。
下面具体内容:
转载

题目:
将txt文件中的小客服与小甲鱼的对话进行切割,并以========为界限,将其分为几个文件,将对话内容存储与不同的文件,具体的可以去找找原题目。
以下是解题代码:

f = open('E:\\桌面\\Python\\record\\record1.txt')
#导入文件,可以双斜杠\\或者反斜杠/

boy = []
girl = []
#创建空列表,后续处理
count = 1
#初始化段落
for each_line in f:
    if each_line[:6] != '======':
        #循环切割。
        (role,words) = each_line.split(':',1)   #split函数切割,两个参数(切割对象(以什么来切割),切割成几部分)
        if role == '小甲鱼':
            boy.append(words)
        else:
            girl.append(words)
    else:
        boy_file_name = 'boy_' + str(count) + '.txt' 
        girl_file_name = 'girl_' + str(count) + '.txt'
        #重命名

        boy_file = open(boy_file_name, 'w')
        girl_file = open(girl_file_name, 'w')
        boy_file.writelines(boy)
        girl_file.writelines(girl)
        #创建新文件,并写入

        boy_file.close()
        girl_file.close()
        #关闭txt文件

        boy = []
        girl = []
        #初始化空列表
        count += 1
        #计数器+1
f.close()
#关闭

可能我们会遇到这种错误:ValueError: not enough values to unpack (expected 2, got 1)
我找了很多资料,很多资料提示是txt文件中的‘:’没有用英文,但其实是源文件txt的内容问题,建议仔细仔细看txt文件内容。

改进后的代码(函数化)为

def save_file(name1,name2,count):
    file_name_boy='name1'+str(count)+'.txt' #这里我想命名为函数导入过来的名字却未能实现,很难受
    file_name_girl='mame2'+str(count)+'.txt'
        
    boy_file=open(file_name_boy,'w')
    girl_file=open(file_name_girl,'w')
    
    boy_file.writelines(name1)
    girl_file.writelines(name2)

    boy_file.close()
    girl_file.close()   
    
    
def split_file(file_name):
    f=open(file_name)
    boy=[]
    girl=[]
    count=1

    for each_line in f:   #进行分割操作
        if each_line[:6]  != '======':
             (role,line_spoken)=each_line.split(':',1)
             if role=='小甲鱼':
                 boy.append(line_spoken)
             if role=='小客服':
                 girl.append(line_spoken)
        else:
            save_file(boy,girl,count)
            count+=1
            
    f.close()
split_file('record1.txt')

这里有一个东西想实现却没能实现,就是函数名字的传入更改,再想想吧!

txt文件内容如下:

小客服:小甲鱼,今天有客户问你有没有女朋友?
小甲鱼:咦??
小客服:我跟她说你有女朋友了!
小甲鱼:。。。。。。
小客服:她让你分手后考虑下她!然后我说:"您要买个优盘,我就帮您留意下~"
小甲鱼:然后呢?
小客服:她买了两个,说发一个货就好~
小甲鱼:呃。。。。。。你真牛!
小客服:那是,谁让我是鱼C最可爱小客服嘛~
小甲鱼:下次有人想调戏你我不阻止~
小客服:滚!!!
===========================================================
小客服:小甲鱼,有个好评很好笑哈。
小甲鱼:哦?
小客服:"有了小甲鱼,以后妈妈再也不用担心我的学习了~"
小甲鱼:哈哈哈,我看到丫,我还发微博了呢~
小客服:嗯嗯,我看了你的微博丫~
小甲鱼:哟西~
小客服:那个有条回复“左手拿著小甲魚,右手拿著打火機,哪裡不會點哪裡,so easy ^_^”
小甲鱼:T_T
===========================================================
小客服:小甲鱼,今天一个会员想找你
小甲鱼:哦?什么事?
小客服:他说你一个学生月薪已经超过12k了!!
小甲鱼:哪里的?
小客服:上海的
小甲鱼:那正常,哪家公司?
小客服:他没说呀。
小甲鱼:哦
小客服:老大,为什么我工资那么低啊??是时候涨涨工资了!!
小甲鱼:啊,你说什么?我在外边呢,这里好吵吖。。。。。。
小客服:滚!!!
===========================================================**

这个文档中的文件可以分割。。。,但是这个为什么不行呢???

小客服:小甲鱼,今天有客户问你有没有女朋友?
小甲鱼:咦??
小客服:我跟她说你有女朋友了!
小甲鱼:..
小客服:她让你分手后考虑下她!然后我说:"您要买个优盘,我就帮您留意下
小甲鱼:然后呢?
小客服:她买了两个,说发一个货就好
小甲鱼:呃。....你真牛!
小客服:那是,谁让我是鱼c最可爱小客服嘛小甲鱼:下次有人想调戏你我不阻止
小客服:滚!!!
===========================================================
小客服:小甲鱼,有个评论很好笑哈。
小甲鱼:哦?
小客服:有了小甲鱼,妈妈再也不用担心我的学习了~
小甲鱼:哈哈哈,我看到了,我还发微博了!
小客服:嗯嗯,我看到了你的微博。
小甲鱼:哟西~
小客服:那条回复有“左手拿着小甲鱼,右手拿着打火机,哪里不会点哪里,so easy!
小甲鱼:T_T
==========================================================
小客服:小甲鱼,今天一个会员找你
小甲鱼:哦,什么事?
小客服:他说你一个学生月薪都超过12k了!!!
小甲鱼:那里的?
小客服:上海的。
小甲鱼:那正常,那家公司呀?
小客服,他没说呀。
小甲鱼:哦
小客服:老大,为什么我工资那么低呀???是时候涨工资了!!
小甲鱼:啊,你说什么呀?我在外边呢,这里好吵呀。。。。。
小客服:滚!!!==========================================================

你们可以仔细看看哪里有问题,哈哈哈,反正我看到了,嘿嘿嘿
转载于https://blog.csdn.net/liulinxs/article/details/99459879

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值