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()    #关闭文件

 

最后用函数封装

 

转载于:https://www.cnblogs.com/jdzhang1995/p/10257480.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值