| 
 | 
 
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册  
 
x
 
 本帖最后由 子非吾 于 2017-12-27 20:06 编辑  
 
这一节课的需要将这个链接: https://pan.baidu.com/s/1hsH6TWo 密码: sczg 将txt文件按如下要求分割存储
 
 
- f=open('record.txt')
 
 - boy=[]
 
 - girl=[]
 
 - count=1
 
  
- for each_line in f:
 
 -     if each_line[:6]!='======':
 
 -         (role,spoken)=each_line.split(':',1) #split(sep=None,maxsplit=-1)不带默认参数是以空格为字符切片字符串,若maxsplit参数有设置,则仅分割maxsplit个字符串,返回切片后的字符串拼接后的列表。
 
 -         |                                                                          
 
 -         |                                                        >>> a='x,aaaaa,bbbb,ccc'
 
 -         |                                                        >>> a.split(',',1)
 
 -         |                                                        ['x', 'aaaaa,bbbb,ccc']
 
 -         |                                                        >>> a.split(',',2)
 
 -         |                                                        ['x', 'aaaaa', 'bbbb,ccc']
 
 -         |                                                        >>> a.split(',',3)
 
 -         |                                                        ['x', 'aaaaa', 'bbbb', 'ccc']
 
 -         |
 
 -         if role == '小甲鱼':
 
 -             boy.append(spoken)
 
 -         if role == '小客服':
 
 -             girl.append(spoken)
 
  
 
-     else: #----------------------------(else: each_line[:6]=='======')。 因为‘======’分隔符有两句,所以else语句会被满足两次
 
 -         file_name_boy='boy'+str(count)+'.txt'
 
 -         file_name_girl='girl'+str(count)+'.txt'
 
  
-         boy_file=open(file_name_boy,'w')
 
 -         girl_file=open(file_name_girl,'w')
 
 -         
 
  
-         boy_file.writelines(boy) #----writelines(seq)向文件中写入字符串序列seq,seq应该是一个返回字符串的可迭代对象
 
 -         girl_file.writelines(girl)
 
 -         
 
 -         boy_file.close() #close='文件以可写的方式打开就要把写好的文件close(关闭)以保存'
 
 -         girl_file.close()#close
 
  
-         count+=1#——————————循环一次就加一次1,这样以来girl/boy的1,2文件就出来了
 
 -         boy=[]     #——————————每次都把列表还原,以保证没有上一次循环的内容
 
 -         girl=[]
 
  
 
- #count在这里因为else循环了两次变成了3
 
 - file_name_boy='boy'+str(count)+'.txt'
 
 - file_name_girl='girl'+str(count)+'.txt'
 
  
- boy_file=open(file_name_boy,'w')
 
 - girl_file=open(file_name_girl,'w')
 
 -         
 
  
- boy_file.writelines(boy)
 
 - girl_file.writelines(girl)
 
  
 
 
- boy_file.close()  #close
 
 - girl_file.close()  #close
 
 - f.close()#只读文件也要关闭,这是个好习惯
 
  复制代码 
 
当然看起来一大坨很不规范,我正在试图通过添加注释的方式来理解程序,大家不要学我。 
还能精简成两个函数,已有现成的代码再写出函数很简单,但我现在还不准备把它弄成两个函数。这一节课的知识点不少。 
 |   
 
 
 
 |