优化小甲鱼Python教程第29讲的代码
感觉小甲鱼在旧版Python教程的第29讲些的代码太麻烦了。。。其实可以写成:
f = open('对话.txt')
x=1
for each_line in f:
if each_line[:6] != "======":
#需要区分小甲鱼和小客服说的内容
(role,line_spoken) = each_line.split(':',1)
if role == '小甲鱼':
#保存到boy_*.txt
f1 = open('boy_'+str(x)+'.txt','a')
f1.write(line_spoken)
f1.close()
else:
#保存到gril_*.txt
f1 = open('gril_'+str(x)+'.txt','a')
f1.write(line_spoken)
f1.close()
else:
#需要分段
x+=1
文件最后一行没有========,无法转到else,无法保存文件 冬雪雪冬 发表于 2020-4-9 23:49
文件最后一行没有========,无法转到else,无法保存文件
测试过没问题的,会分成三个文件。检测======只是用来给a+1。
a默认是1,boy和gril的就会被分开写入boy_1.txt和gril_1.txt,检测到======后给a加1,之后的就会写入boy_2.txt和gril_2.txt里,再遇到======又会加1,变成boy_3.txt和gril_4.txt PFBZSC 发表于 2020-4-10 12:08
测试过没问题的,会分成三个文件。检测======只是用来给a+1。
a默认是1,boy和gril的就会被分开写入boy_ ...
我弄错了,但是如果每一行都打开写入关闭文件,效率是比较低的。 冬雪雪冬 发表于 2020-4-10 14:30
我弄错了,但是如果每一行都打开写入关闭文件,效率是比较低的。
修改了一下:
x=1
f = open('D:\\desktop\\对话.txt')
def openf():
global f1,f2
f1 = open('boy_'+str(x)+'.txt','a')
f2 = open('gril_'+str(x)+'.txt','a')
def closef():
f1.close()
f2.close()
openf()
for each_line in f:
if each_line[:6] != "======":
#需要区分小甲鱼和小客服说的内容
(role,line_spoken) = each_line.split(':',1)
if role == '小甲鱼':
#保存到boy_*.txt
f1.write(line_spoken)
else:
#保存到gril_*.txt
f2.write(line_spoken)
else:
#需要分段
x+=1
closef()
openf()
closef()
多了7行,改成了执行前打开文件,然后写入,遇到======x+=1并且重新关闭旧文件并重新打开新文件
页:
[1]