第八章 永久存储[DDT书本学习 小甲鱼]【2】

8.1.6 一个任务
题目:将record.txt中的对话进行分割,并按照以下规则进行保存起来。
1.小甲鱼的对话单独保存为boy_*.txt的文件(去掉"小甲鱼:")
2.小客服的对话单独保存为girl_*.txt的文件(去掉"小客服:")
3.文章中有三段对话,分别保存为boy_1.txt、boy_2.txt、boy_3.txt、
girl_1.txt、girl_2.txt、girl_3.txt、共6个文件。(提示:每段对话用“===”隔开了)
******************* record.txt内容 ****************
小甲鱼:你好
小客服:你不好么,怎么这么问
小甲鱼:听说你有些忙,真的么
小客服:是啊,没有你忙碌
小甲鱼:我混日子的哦
小客服:我也一样
============================
小甲鱼:我说。。。
小客服:什么
小甲鱼:说不出来呢
小客服:害羞么
小甲鱼:不是
小客服:那就算了
=============================
小甲鱼:太阳从南北边出来咯
小客服:在讲梦话么,哥?
小甲鱼:别这么称呼我,不适应呢
小客服:旁边玩去,我很忙。
********************* record.txt内容 **************
---------------------常规思路如下所示---------------------------------------
boy=[]
girl=[]
count=1
f=open(r"C:\Users\Daodantou\Desktop\record.txt",encoding="UTF-8")
for eachline in f:
if eachline[:5]!="=====":
(mz,nr)=eachline.split(":",1)
if mz=="小甲鱼":
boy.append(nr)
if mz=="小客服":
girl.append(nr)
else:
fileNameBoy="C:\\Users\\Daodantou\\Desktop\\"+"boy_"+str(count)+".txt"
fileNameGirl = "C:\\Users\\Daodantou\\Desktop\\" + "girl_" + str(count) + ".txt"
boyfile=open(fileNameBoy,"w",encoding="UTF-8")
girlfile=open(fileNameGirl,"w",encoding="UTF-8")
boyfile.writelines(boy)
girlfile.writelines(girl)
count+=1
boy=[]
girl=[]

fileNameBoy="C:\\Users\\Daodantou\\Desktop\\"+"boy_"+str(count)+".txt"
fileNameGirl = "C:\\Users\\Daodantou\\Desktop\\" + "girl_" + str(count) + ".txt"
boyfile=open(fileNameBoy,"w",encoding="UTF-8")
girlfile=open(fileNameGirl,"w",encoding="UTF-8")
boyfile.writelines(boy)
girlfile.writelines(girl)
boyfile.close()
girlfile.close()
f.close()

---------------------代码封装 升级后 如下 ----------------------------------
def saveFile(boy,girl,count):
fileNameBoy = "C:\\Users\\Daodantou\\Desktop\\" + "boy_" + str(count) + ".txt"
fileNameGirl = "C:\\Users\\Daodantou\\Desktop\\" + "girl_" + str(count) + ".txt"
boyfile = open(fileNameBoy, "w", encoding="UTF-8")
girlfile = open(fileNameGirl, "w", encoding="UTF-8")
boyfile.writelines(boy)
girlfile.writelines(girl)
boyfile.close()
girlfile.close()

def splitFile(fileName):
girl = []
boy = []
count=1
f = open(fileName, encoding="UTF-8")
for eachline in f:
if eachline[:5] != "=====":
(mz, nr) = eachline.split(":", 1)
if mz == "小甲鱼":
boy.append(nr)
if mz == "小客服":
girl.append(nr)
else:
saveFile(boy,girl,count)
girl = []
boy = []
count += 1
saveFile(boy,girl,count)
f.close()
splitFile(r"C:\Users\Daodantou\Desktop\record.txt")

原文地址:https://www.cnblogs.com/daodantou/p/10352394.html

时间: 2024-08-30 13:57:48

第八章 永久存储[DDT书本学习 小甲鱼]【2】的相关文章

第八章 永久存储[DDT书本学习 小甲鱼]【3】

8.2 文件系统:介绍一个高大上的东西 Python自身带有很多使用的模块. 比如random模块的randint()函数生成随机数,不能直接调用,要引入. import random random.randint(0,9)========================================================OS模块,就是Operating System的缩写,意思是操作系统,平时说的ios是指iPhone OS的意思,苹果操作系统.Python是跨平台语言,同样代码在

第八章 永久存储[DDT书本学习 小甲鱼]【1】

8.1 文件:因为懂你,所以永恒CPU-内存CPU-硬盘==========================================================8.1.1打开文件 open()函数打开并且返回文件对象open()有很多参数,作为初学者,先关注第一和第二个参数即可.open(带路径的文件名,指定文件打开模式)----------------------------------------------"r"只读模式(默认)"w"写入模式 覆盖

第九章 异常处理[DDT书本学习 小甲鱼]【1】

9.1 你不可能总是对的举例如下file_name=input("请输入文件的名称:")s="C:\\Users\\Daodantou\\Desktop\\"+file_namef=open(s,"r",encoding="UTF-8")print("文件的内容是:")for each in f: print(each)-------------------------------请输入文件的名称:reco

第三章 必须知道的一些基础知识[DDT书本学习 小甲鱼]【2】

3.6 条件分支========================完成第一个要求 提示作用 计算机如何比较 > < == != >= <= 操作符 开始例子源码 '''=========猜数字游戏==============''' i=7 number=input("猜猜我手中的数字是?:") n=int(number) if n==i: print("你猜对了!") else: if n>i: print("猜大了"

第五章 列表、元组和字符串[DDT书本学习 小甲鱼]【4】

5.1.9 关于分片"拷贝"的概念补充 [真正的拷贝是切片] 代码 list1=[1,3,2,9,7,8] list2=list1[:] print(list2) list3=list1 print(list3) ---------------------- [1, 3, 2, 9, 7, 8] [1, 3, 2, 9, 7, 8] 以上代码看似一样的输出结果,事实上呢,作如下修改后 list1 = [1, 3, 2, 9, 7, 8] list2 = list1[:] list3=l

第六章 函数[DDT书本学习 小甲鱼]【1】

6.1Python的乐高积木 程序分解为小的组成部分.三种方法实现:函数.对象.模块6.1.1 创建和调用函数 以前接触到的BIF就是Python帮我们封装好的函数 def 德芙 关键字: 代码如下 def myFirstFunction(): print("大家好,我是新来的1") print("大家好,我是新来的2") print("大家好,我是新来的3") myFirstFunction() 重复三次,该如何做? for i in rang

第六章 函数[DDT书本学习 小甲鱼]【3】

6.5 lambda表达式 谐音:懒不嗒?lam-b-da 匿名函数 代码 def my(x): teturn 2*x+1 e=my(5) print(e) --------------------- 11 如果使用lambda语句来定义,会是这样 lambda x:2*x+1 返回的是一个函数对象 进行使用,代码如下 g=lambda x:2*x+1 print(g(5)) ------------------------ 11 ================================

第七章 字典和集合[DDT书本学习 小甲鱼]【3】

4.copy() 复制字典a={1:"one",2:"two",3:"three"}b=a.copy()print(id(a))print(id(b))a[1]="four"print(a)print(b)-------------------24311023227282431102322800{1: 'four', 2: 'two', 3: 'three'}{1: 'one', 2: 'two', 3: 'three'}==

第四章 了不起的分支和循环[DDT书本学习 小甲鱼]【2】

4.4 Python可以有效避免"悬挂else" Python的缩进使用强制规定使得代码必须正确对齐,else属于那个if清晰可见.4.5 条件表达式(三元操作符) 代码 if x<y: small=x else: small=y 将以上代码用三元操作符来表示 语法 a=x if 条件 else y 含义:如果条件真则a=x,如果条件假则a=y. 代码改进 small=x if x<y else y Python的代码简洁高效!!!4.6 断言 assert 是分支if的近