python学习文件

f = open('file的路径',mode='rt')  //地址'e:\\xxx'或者'e:/'  mode打开模式

 f.read()  //读取文件内容,指针指到末尾

 

创建写入关闭

f = open('E:\\test.txt', 'w')

f.write('abcdefg')  //要写入内容,要注意文件打开模式是w

f.close()  //忘记关闭文件会被系统回收

 

打印每一行

for each_line in f:

  print(each_line)

 

文件打开模式

 

打开模式 执行操作
'r' 以只读方式打开文件(默认)
'w' 以写入的方式打开文件,会覆盖已存在的文件
'x' 如果文件已经存在,使用此模式打开将引发异常
'a' 以写入模式打开,如果文件存在,则在末尾追加写入
'b' 以二进制模式打开文件
't' 以文本模式打开(默认)
'+' 可读写模式(可添加到其他模式中使用)
'U' 通用换行符支持


    
文件对象方法

 

文件对象方法 执行操作
f.close() 关闭文件
f.read([size=-1]) 从文件读取size个字符,当未给定size或给定负值的时候,读取剩余的所有字符,然后作为字符串返回
f.readline([size=-1]) 从文件中读取并返回一行(包括行结束符),如果有size有定义则返回size个字符
f.write(str) 将字符串str写入文件
f.writelines(seq) 向文件写入字符串序列seq,seq应该是一个返回字符串的可迭代对象
f.seek(offset, from) 在文件中移动文件指针,从from(0代表文件起始位置,1代表当前位置,2代表文件末尾)偏移offset个字节
f.tell() 返回当前在文件中的位置
f.truncate([size=file.tell()]) 截取文件到size个字节,默认是截取到文件指针当前位置

 

 

f = open('recoed.txt')

boy = []

girl = []

for each_line in f:      #对每一行读取

  if each_line[:6] != '====='  

    (role, line_spoken) = each_line.split(':', 1)  #对每一行分割,':'前的为role,后为line_spoken

    if role == '小甲鱼':            

      boy.append(line_spoken)      #加入到boy列表中

    if role == '小客服':

      girl.append(line_spoken)

  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)    #写入boy列表

    girl_file.writelines(girl)

    boy_file.close()

    girl_file.close()

    boy = []        重置列表

    girl = []

    count += 1

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()

girl_file.close()

f.close()    #关闭文件

 

最后用函数封装

 

posted @ 2019-01-11 21:32  鸡蛋JD  阅读(208)  评论(0编辑  收藏  举报