• python文件管理


    文件没有修改操作,修改的方式为打开文件--读取文件--内存中编辑文件--将内容写入文件

    打开文件方式

    with open('a.txt','w') as f: #操作系统自动关闭文件
        f.write('xxx
    ')
    
    f = open('a.txt','w',encoding='gbk')
    f.write('xxx')
    f.close()
    

    文件打开模式

    • r 只读模式。如果文件不存在,返回异常FileNotFoundError,默认值;
    • w 覆盖写模式,文件不存在则创建,存在则完全覆盖;
    • x 创建写模式,文件不存在则创建,存在则返回异常FileExistError;
    • a 追加写模式,文件不存在则创建,存在则在文件最后追加内容;
    • t 文本文件模式,默认值;
    • b 二进制文件模式;
    • ‘+' 与r/w/x/a一同使用,在原功能的基础上增加同事读写的功能

    文件打开时+表示同时读写某个文件

    • r+ 读写
    • w+ 写读
    • x+ 写读
    • a+ 写读

    b表示以字节的方式操作(对linux无影响,如果需要跨平台性能好文件打开关闭建议采用rb的方式)

    • rb或r+b
    • wb或w+b
    • xb或x+b
    • ab或a+b

    f.readlines() 一次读取文件,读取后的文件为列表

    二进制文件读取,不能指定编码,只能读取文件之后使用decode方式进行解码

    f = open(‘a.txt’,'rb')
    data = f.read().decode('utf-8')
    print(data)
    f.close
    

    二进制文件写入,不能指定编码,只能将内容先转换成bytes类型

    #方法一
    f = open(‘a.txt’,'wb')
    f.write(bytes('11111
    ',encoding='utf-8'))
    f.close()
    
    #方法二
    a = open(‘a.txt’,'wb')
    a.write('杨戬'.encode('utf-8'))
    a.close()
    

    文件内容从内存写入到磁盘

    一般需要f.close()的时候才能够写入文件,如果不关闭文件,需要使用下面命令写入到文件中

    f.flush()
    

    文件光标位置

    print(f.tell()) #读取当前光标位置
    f.seek() #修改光标位置,按照**字节**计算
    f.read(4) #读取4个**字符**
    

    seek三种模式

    seek(光标移动多少位,模式)

    • 0 默认模式,从文件开头
    • 1 以光标当前位置进行seek,相对seek
    • 2 从文件末尾进行seek 如seek(-10,2)

    使用seek案例

    读取文件最后一行

    f = open(日志文件,'r')
    for i in f:
        offs=100 #定义偏移量,一行大概10个字节    
        while True:
            f.seek(offs,2)
            data = f.readlines()
            if len(data) > 1:
                print(‘文件的最后一行是%s’, %(data[-1].decode('utf-8')))
                break
            offs*=2
        
    
    

    循环文件方式,要一行就读取一行,减小内存占用

    for i in f:
        print(i)
    

    跨平台的换行符读取

    f.open("a.txt","r",newline="") #读取真正的换行符
    
    
  • 相关阅读:
    VSFTPD无法上传的解决方法
    linux下vsftpd的安装与配置说明
    长轮询
    采用handle消息机制实现轮播效果
    开启AsyncTask从网络加载图片
    使用异步httpclient框架做get,post提交数据
    使用post方式提交数据
    使用get方式提交数据
    json,xml,Html解析
    常用的有关文件上传下载的框架和图片加载框架
  • 原文地址:https://www.cnblogs.com/chrrydot/p/9788473.html
Copyright © 2020-2023  润新知