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删除原文件,将新文件重新命名为原文件的名字

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

  • 相关阅读:
    【二分】XMU 1587 中位数
    【动态规划】XMU 1560 新ACM规则
    【最短路】Vijos P1046 观光旅游
    【递归】Vijos P1114 FBI树(NOIP2004普及组第三题)
    一周多没打代码了。。
    6.4 文件与文件夹操作
    6.3.4 使用marshal 模块操作二进制文件
    6.3.3 使用 shelve 模块操作二进制文件
    6.3.2 使用struct模块读写二进制文件
    6.3.1 使用 pickle 模块读写二进制文件
  • 原文地址:https://www.cnblogs.com/zhangrenguo/p/9141123.html
Copyright © 2011-2022 走看看