Python 7文件

文件打开函数open(file,mode='r',...)

          f1=open('D:\\figure.txt','r')                        注:\\可用/替代

关键字with:防止读写代码操作异常以致文件无法正常关闭

                   with open('    ','     ') as f:
       
                                   文件操作

注:使用with关键字时文件操作只能在关键字下进行


打开模式说明
‘r’只读
‘w’文件不存在,则创建文件;文件存在,清空文件
‘a’追加模式,在文件末尾操作
‘t’默认模式,文本(可省略)


文件函数作用
f=open ( file , mode )打开文件
f.close ( )关闭文件
f.read(size)从文件中读取size个字符,当size未赋值或者为-1时,输出整个文件
f.readline ( ) 从文件中获取一行内容作为结果返回
f.readlines( )将文件中的每行文本作为一个字符串存入列表中,然后返回列表
f.write(str)将字符串写入文件的末尾,打开方式用‘a’追加写入。返回字符写入个数
f.writelines(s)将字符串列表写入文件
f.tell()返回文件指针的当前位置(一个汉字占两个字节)
f.seek(offset,from)移动文件指针的位置,from:0表示从文件头开始计算,1表示从当前位置开始计算,2表示从文件尾开始计算(to be continueing)
迭代:
>>> f = open('G:/record.txt','r')
>>> for each_line in f:
    print(each_line)

递归和迭代都属于循环方法,递归通过重复调用函数自身来实现循环,而迭代通过某一段函数体的重复来实现循环。

参考代码:
def save_file(boy,girl,count):
    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()
        

def split_file():
    
    f=open('G:/record.txt')

    boy=[]
    girl=[]
    count=1

    for each_line in f:
        if each_line[:6]!= '======':
            (role,line_spoken)=each_line.split(':',1)
            if role=='小甲鱼':
                boy.append(line_spoken)
            if role=='小客服':
                girl.append(line_spoken)
        else:
             save_file(boy,girl,count)

             boy=[]
             girl=[]
             count+=1
        

    save_file(boy,girl,count)
    f.close()

split_file()

Python是跨平台语言,也就是说同样的源代码在不同的操作系统上可以无需修改就执行







os模块和os.path








二进制操作
    rb,wb:二进制可读,可写

         pickle模块

pickle.dump(序列,文件变量):将序列以二进制形式写入文件
pickle.load(文件变量):打开文件

import pickle
my_list=["华晨宇","薛之谦","周杰伦"]
f= open("sing.txt",'wb')
pickle.dump(my_list,f)
f.close()
k=open("sing.txt","rb")
l=pickle.load(k)
print(l)











 



















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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值