#小甲鱼的对话单独保存为boy_*.txt,去掉”小甲鱼:“
#小客服的对话单独保存为girl_*.txt,去掉”小客服:“
#文件中一共有三段对话,分别保存为boy_1.txt,boy_2.txt,boy_3.txt
#以及girl_1.txt,girl_2.txt,girl_3.txt共6个文件
f=open(r"C:\Users\Administrator\Desktop\python\record.txt","r")
f.seek(0,0) #从文件头开始
string=f.read() #讲txt里面的东西赋值给字符串string
def variation(range_1,count):
i=0
sign=[0]
while string[i] != '=':
for i in range(range_1,len(string)):
if string[i]=='\n' and "小客服:" in string[max(sign):i]:
boy='boy_'+str(count)+'.txt'
boy_file=open(boy,'w+') #+4的目的是避免将”小甲鱼:“,”小客服:“放入文件中
boy_file.write(string[max(sign)+4:i]) #max(sign)找最大值,越往后的换行符的位置参数越大,就是离当前换行符最近的那一个换行符的位置
i+=1 #跳过第二个换行符,开始新一轮判别,原因如下
sign.append(i) #存放换行符的位置,换行符是有每个句子结尾和句子开头都有一个换行符,例如‘女朋友?\n\n小甲鱼:咦???\n\n小客服:我跟:’
else:
if string[i]=='\n' and "小甲鱼:" in string[max(sign):i] :
girl='girl'+str(count)+'.txt'
girl_file=open(girl,'w+')
girl_file.write(string[max(sign)+4:i])
i+=1
sign.append(i)
print('location=',i) #输出当前出现‘=’的位置
variation(0,1)
boy_1.close()
girl_1.close()
location_1=location #存放第一次出现‘=’的位置
if string[location_1]=='=': #循环跳过所有的‘=’符号之后,在开始存放数据
location_1+=1
else:
variation(location_1,2)
boy_2.close()
girl_2.close()
location_2=location #存放第2次出现‘=’的位置
if string[location_2]=='=': #循环跳过所有的‘=’符号之后,在开始存放数据
location_2+=1
else:
variation(location_2,3)
boy_3.close()
girl_3.close()
f.close()
#现在显示回溯(最后调用):
# File "C:\Users\Administrator\Desktop\python\29_fenduan.py", line 29, in <module>
# variation(0,1)
#File "C:\Users\Administrator\Desktop\python\29_fenduan.py", line 12, in variation
# while string[i] != '=':
#IndexError: string index out of range
|