zoukankan      html  css  js  c++  java
  • python中的文件操作(2)

    a+,w+,r+的特点:

    r+:r+模式允许读和写,当对文件句柄只进行写操作时,tell(),seek()为写操作的‘指针’(也就是写到seek()处)。

         当只进行读操作时,tell(),seek()为读操作的‘指针’也就是从seek()处开始)。

      当两者都有时,写操作只能追加(写在文件末尾),但是seek()指针会增加(增加大小为追加的内容的字节数),读操作时,seek()指针也会增加(增加大小为读出的内容的字节数)。seek()只会影响读操作。

    f = open('小猪猪大人', 'r+', encoding='utf-8')
    print(f.tell())
    f.seek(3)
    f.write('abccsfvdv哇哈哈啊哇哈哈dsa')
    print(f.readline(3))
    print(f.tell())
    f.seek(f.tell())
    f.write('defdsaffa')
    print(f.readline(3))
    print(f.tell())
    f.close()

    w+:w+模式允许读和写,当对文件句柄只进行写操作时,tell(),seek()为写操作的‘指针’(也就是写到seek()处)。

         当只进行读操作时,tell(),seek()无作用,w模式会清空所有内容,没有内容可以读。

      当两者都有时,写操作和读操作共同使用seek()和tell()函数。读写都会影响seek指针。seek指针确定读写的位置。

    f = open('小猪猪大人', 'w+', encoding='utf-8')
    print(f.tell())
    f.seek(3)
    f.write('abccsfvdv哇哈哈啊哇哈哈dsa')
    f.seek(6)
    print(f.readline(3))
    print(f.tell())
    f.seek(3)
    f.write('defdsaffa')
    # print(f.readline(3))
    print(f.tell())

    a+:a+模式允许读和写,当对文件句柄只进行写操作时,tell(),seek()影响不大,写操作只能追加,写操作后tell()自动跳到文件尾。

         当只进行读操作时,seek()为读操作的起始指针。读后tell()增大。此时与‘r’模式一样

      当两者都有时,写操作为追加,会将指针指向末尾,读操作时从指针处开始读,指针移动(增加)读出的字节数。

     
  • 相关阅读:
    实例讲解Springboot以Repository方式整合Redis
    Spark join 源码跟读记录
    数理统计与参数估计杂记
    常见的距离算法和相似度(相关系数)计算方法
    生成模型(Generative Model)与判别模型(Discriminative Model)
    Java 积累复习用
    RangePartitioner 实现简记
    Spark常见问题汇总
    2016年终总结
    学习资料库
  • 原文地址:https://www.cnblogs.com/MY0213/p/7768433.html
Copyright © 2011-2022 走看看