• Python之文件处理


    一.文件处理流程  

    1 f= open('test', encoding='utf-8')#1.文件不指定处理模式,默认只读2.注意指定文件编码格式,不指定默认系统编码
    2 data=f.read()
    3 print(data)
    4 f.close()              #打开文件一定要记得关闭
    5 **注意以上两点

    因为文件打开时,容易忘记关闭。有种不用自己写关闭的方法,可以自己关闭文件:

    1 with open('test','r',encoding='utf-8') as f:
    2     print(f.read())

    二.文件处理模式

    1.读操作

    文件格式:

    1 aaaa
    2 bbbb
    3 cccc

    常用方法1:

    1 f= open('test','r', encoding='utf-8')
    2 print(f.readable())    #判断是否可读
    3 print(f.readline())    #有一次读取一行
    4 print(f.readline(),end='')  #取消换行
    5 print(f.readline())

    打印结果:

    1 True
    2 aaaa
    3 
    4 bbbb
    5 cccc
    6

    常用方法2:

     readlines()方法,读取文件存放到列表里f= open('test','r', encoding='utf-8')

    data=f.readlines()
    print(data)

    打印结果:
    ['aaaa ', 'bbbb ', 'cccc']


    2.w写操作
    文件存在,会清空文件
    文件不存在,会新建文件
    1 f= open('test','w', encoding='utf-8')
    2 print(f.writable())              #判断是否可写
    3 f.write('11111111
    ')
    4 f.write('333
    4444
    555
    ')
    5 f.writelines(['555
    ','6666
    ']) # 文件内容只能是字符串,只能写字符串
    6 f.close()
    文件效果:
    1 11111111
    2 333
    3 4444
    4 555
    5 555
    6 6666
    7  

    3.a 追加操作

    f= open('test','a', encoding='utf-8')
    f.write('这是最后一行')

    4.其他文件处理操作

    r+  可读可写

    w+ 可写可读  #会清空文件

    a+ 读和追加

    文件在硬盘上储存,本质上没有修改,只有覆盖,修改是在内存中进行。

    模拟修改文件的过程:

    先取到内存里,在进行修改,最后覆盖到硬盘上。

     1 q_f=open('test','r',encoding='utf-8')   #取文件
     2 data=q_f.readlines()
     3 q_f.close()
     4 
     5 for i in data:                         #读取修改文件
     6     print(i)
     7 print(data)
     8 d_f=open('test','w',encoding='gbk')    #存文件
     9 d_f.write(data[0])
    10 d_f.close()

    三.文件处理b模式

    1.rb读取,在进行解码

    1 f=open('test','rb') #b的方式不能指定编码,b模式指定二进制字节
    2 data=f.read()
    3 print(data)
    4 print(data.decode('utf-8'))
    5 f.close()

    打印结果:

    b'ddddd '
    ddddd

    2.wb以及ab写入,通过指定编码方式写入字节对象

    
    
    1 f=open('test2.py','wb')
    2 f.write(bytes('1111
    ',encoding='utf-8'))  #写入方式一
    3 f.write('技艺'.encode('utf-8'))            #写入方式二
    4 
    5 f=open('test2.py','ab')
    6 f.write('坏蛋'.encode('utf-8'))
    
    

    四。其它操作方法

     1 f=open('test2.py','r+',encoding='utf-8',newline='') #默认把
    读取成
    .读取文件中真正的换行符号
     2 f.closed   #判断是否关闭
     3 f.encoding #文件打开的解码方式
     4 f.flush()  #保存(刷新)
     5 f.tell()   #按照字节判断光标移动位置
     6 f.read(3)  #按照字符读取
     7 f.truncate(4) #按照字节截取文件,如果字节数不恰好是断点处,文件会显示乱码
     8 f.seek()  #设置光标位置,从零开始
     9 f.seek(10,1)#1为正向读取,接着当前位置向下
    10 f.seek(-10,2)  #2为倒着读,而且只能在rb模式下进行

    五。读取最后一行日志方法

     1 f=open('日志文件','rb')
     2 for i in f:
     3     offs=-10
     4     while True:
     5         f.seek(offs,2)
     6         data=f.readlines()
     7         if len(data) > 1:
     8             print('文件的最后一行是%s' %(data[-1].decode('utf-8')))
     9             break
    10         offs*=2
     
    全面发展
  • 相关阅读:
    Apache https 证书配置...
    npm 安装 sass=-=-=
    mysql 8.0 安装
    『转』谷歌发布Windows版Chrome App Launcher
    VMware Workstation 10.0.0.1295980 CN
    16款最受关注的智能手表 苹果iWatch领衔
    百度网盘推荐部分优秀的分享达人
    『转』市售热门可穿戴式“活动追踪器 Tracker”导购指南
    各网盘活动地址及点评-14.03.28
    2014.01.07_自用软件-春运开始了....
  • 原文地址:https://www.cnblogs.com/snowony/p/11795560.html
Copyright © 2020-2023  润新知