zoukankan      html  css  js  c++  java
  • 文件处理

    文件处理
    r+w:可读可写
    with open('a.txt',mode='rt',encoding='utf-8')as f:
        data=f.read()
    print(data) 
    with open('a.txt',mode='rb')as f:
        data=f.read()
    print(data.decode('utf-8'))

    w+t:可写可读
    with open('a.txt','w+t',encoding='utf-8')
    print(f.readable)
    print(f.writeable)

    a+t:可追写可读


    控制文件指针移动
    f=open('c.txt',mode='r',encoding='utf-8')
        f.seek(offest,whence)
    offest代表文件的指针偏移量,单位是bytes
    whence代表参考物有三个取值
    0:参照文件的开头(t和b都可以用)
    1:参照当前文件指针所在的位置(只能在b模式下使用)
    2:参照文件末尾(倒着移动  (只能在b模式下使用)

    快速移动到文件末尾
    f.seek(0,2)

    只有在t模式下的read(n),n代表的是字符个数,除此之外其他的但凡涉及到文件指针的移动都是字节为单位

    f=open('c.txt',mode ='rt',encoding ='utf-8')
    f.close()

    f=open('b.txt',mode='r+b')
    f.truncate(3)  参照物的开头永远是文件开头
    ab、a+b、r+b


    文件的修改

    with open('c.txt','r+t',encoding='utf-8')as f:

    f.seek(21,0)
    f.write('我接你')


    修改文件内容的方式之一
    思路:先将原文件内容一次性全部读入内存,然后在内存修改完毕后,在覆盖会原文件
    with open(’d.txt',‘rt',encounding='utf-8')as f:

    修改文件的内容方式之二
    思路
    1以读的方式打开原文件,以写的方式打开一个新文件
    2从原文件循环读取每一行内容修改后写写入新文件
    3删除原文件,将新文件重新命名为原文件的名字

    优点同一时刻只有一行内容,存在于内存中
    缺点在修改期间,文件内容始终存在

  • 相关阅读:
    如何保证消息不被重复消费?
    接口幂等性实现
    JVM 线上故障排查基本操作
    对于Arraylist 的一些疑问
    递归思想与递归编程
    linux配置javaJDK
    python数据分析-pandas常用方法
    python 数据分析-pandas数据结构
    python数据分析-numpy 矩阵操作
    python数据分析-numpy数组操作
  • 原文地址:https://www.cnblogs.com/zhangrenguo/p/9141123.html
Copyright © 2011-2022 走看看