Python案例学习—yuC

本文介绍了一种从记录文件中分离不同角色对话并分别保存的方法。通过定义函数process_file,实现了将小甲鱼和小客服的对话内容分别写入不同的文件中,便于后续的数据分析和管理。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

# 将文件中的三段对话和小甲鱼、小客服各自说的话分别保存到其他文件中
# 将小甲鱼的对话保存到boy_1.txt、boy_2.txt、boy_3.txt
# 将小客服的对话保存到girl_1.txt、girl_2.txt、girl_3.txt

# 定义函数
def process_file(boy,girl,count):
    # boy, girl = str(boy),str(girl)# 而字典的键不能是列表,因此需要把boy,girl转换成str形式,而str形式只有一行
    file_name_1,file_name_2 = open('boy_' + str(count) + '.txt', 'a'),open('girl_' + str(count) + '.txt', 'a')
    # set = { boy:file_name_1, girl:file_name_2} #---> 当writelines 的对象是list时,可以把文件以“行”的形式写进去
    # for i in (boy, girl):
    #     set[i].writelines(i)# writelines的对象可以是列表或者字符串
    #写入文件
    file_name_1.writelines(boy)
    file_name_2.writelines(girl)
    #关闭文件
    file_name_1.close()
    file_name_2.close()
    #boy, girl = list(boy), list(girl)# 用于将前面str的形式变回list形式

count = 1
# 设置一个小字典
role_set = {'小甲鱼': 'boy', '小客服': 'girl'}
# 设置列表
boy = []
girl = []
f = open('record.txt')
# 打开record.txt文件
# 遍历文件
for each_line in f:
    if each_line[:6] != '======':
        (role, line_spoken)= each_line.split(':',1)
        if role_set[role] == 'boy':
            boy.append(line_spoken)
        elif role_set[role] == 'girl':
            girl.append(line_spoken)
    else:
        process_file(boy,girl,count)
        boy = []
        girl = []
        count += 1
process_file(boy,girl,count)
f.close()

附文档内容:

小客服:小甲鱼,今天有客户问你有没有女朋友?
小甲鱼:咦??
小客服:我跟她说你有女朋友了!
小甲鱼:。。。。。。。。
小客服:她让你分手后考虑下她!然后我说:“您要买个优盘,我就帮您留意下~”
小甲鱼:然后呢?
小客服:她买了两个,说发一个货就好~
小甲鱼:呃。。。。。。。你真牛!!!
小客服:那是,谁让我是鱼C最可爱小客服嘛~
小甲鱼:下次有人想调戏你我不阻止~
小客服:滚!!!
==================================================
小客服:小甲鱼,有个小评很好笑哈。
小甲鱼:哦?
小客服:”有了小甲鱼,以后妈妈再也不用担心我的学习了~”
小甲鱼:哈哈哈,我看到了呀,我还发微博了呢~
小客服:嗯嗯,我看到你的微博了~
小甲鱼:呦西~
小客服:那个有条回复:”左手拿着小甲鱼,右手拿着打火机,那里不会点哪里,so easy~“
小甲鱼:T_T
==================================================
小客服:小甲鱼,今天有一个会员想找你
小甲鱼:哦?什么事?
小客服:他说你一个学生月薪超过12K了!!!
小甲鱼:哪里的?
小客服:上海的
小甲鱼:那正常吧,哪家公司?
小客服:他没说呀。
小甲鱼:哦
小客服:老大,为什么我工资那么低啊??是时候涨工资了!!
小甲鱼:啊,你说什么?我在外面呢,这里好吵呀。。。。。。
小客服:滚!!!
资源下载链接为: https://pan.quark.cn/s/f989b9092fc5 今天给大家分享一个关于C#自定义字符串替换方法的实例,希望能对大家有所帮助。具体介绍如下: 之前我遇到了一个算法题,题目要求将一个字符串中的某些片段替换为指定的新字符串片段。例如,对于源字符串“abcdeabcdfbcdefg”,需要将其中的“cde”替换为“12345”,最终得到的结果字符串是“ab12345abcdfb12345fg”,即从“abcdeabcdfbcdefg”变为“ab12345abcdfb12345fg”。 经过分析,我发现不能直接使用C#自带的string.Replace方法来实现这个功能。于是,我决定自定义一个方法来完成这个任务。这个方法的参数包括:原始字符串originalString、需要被替换的字符串片段strToBeReplaced以及用于替换的新字符串片段newString。 在实现过程中,我首先遍历原始字符串,查找需要被替换的字符串片段strToBeReplaced出现的位置。找到后,就将其替换为新字符串片段newString。需要注意的是,在替换过程中,要确保替换操作不会影响后续的查找和替换,避免遗漏或重复替换的情况发生。 以下是实现代码的大概逻辑: 初始化一个空的字符串result,用于存储最终替换后的结果。 使用IndexOf方法在原始字符串中查找strToBeReplaced的位置。 如果找到了,就将originalString中从开头到strToBeReplaced出现位置之前的部分,以及newString拼接到result中,然后将originalString的查找范围更新为strToBeReplaced之后的部分。 如果没有找到,就直接将剩余的originalString拼接到result中。 重复上述步骤,直到originalStr
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值