• 文件操作


    • 辅助内容读模式:(r,rb) read f = open(文件地址,mode=?,encoding="***"编码类型) content = f.read() print(content) f.close()
      • 绝对位置:在磁盘目录下,一层一层寻找到的最终地址
      • 相对位置:同一个文件夹下的文件,相对于这个运行程序的文件夹而言,如果在同一个文件夹中直接输入文件名,如果在上一层菜单中../返回
    •  
    • rb. 读取出来的数据是bytes类型, 在rb模式下. 不能选择encoding字符集.
      • rb的作用: 在读取非文本文件的时候. 比如读取MP3. 图像. 视频等信息的时候就需要用到 rb. 因为这种数据是没办法直接显示出来的. 
    •  
    • read(n) 读取n个字符. 需要注意的是. 如果再次读取. 那么会在当前位置继续去读而不是从头读, 如果使用的是rb模式. 则读取出来的是n个字节
    • readline() ⼀次读取⼀行数据, 注意: readline()结尾, 注意每次读取出来的数据都会有一 个 所以呢. 需要我们使用strip()方法来去掉 或者空格. readlines()将每⼀行形成一个元素, 放到一个列列表中. 将所有的内容都读取出来. 所以 也是. 容易出现内存崩溃的问题.不推荐使用
    • 循环读取. 这种方式是组好的. 每次读取一行内容.不会产生内存溢出的问题. f = open("../def/哇擦.txt", mode="r", encoding="utf-8") for line in f:    print(line.strip()) 注意: 读取完的文件句柄⼀一定要关闭   f.close()
    •  
    • 写模式(w, wb) 写的时候注意. 如果没有⽂文件. 则会创建文件, 如果文件存在. 则将原件中原来的内容删除, 再写入新内容
    • 追加(a, ab)    在追加模式下. 我们写入的内容会追加在文件的结尾.
    • 读写模式(r+, r+b)   
    • 对于读写模式. 必须是先读. 因为默认光标是在开头的. 准备读取的. 当读完了了之后再进⾏行行 写入. 我们以后使用频率最高的模式就是r+
    • f = open("小娃娃", mode="r+", encoding="utf-8") 
      content = f.read() 
      f.write("麻花藤的最爱") 
      print(content) 
      f.flush() 
      f.close()   
    • 结果: 正常的读取之后, 写在结尾. 深坑请注意: 在r+模式下. 如果读取了内容. 不论读取内容多少. 光标显示的是多少. 再写入或者操作文件的时候都是在结尾进行的操作
    • 写读(w+, w+b)    先将所有的内容清空. 然后写入. 最后读取. 但是读取的内容是空的, 不常用
    •  
    • 追加读(a+)    a+模式下, 不论先读还是后读. 都是读取不到数据的.
    • 其他相关操作
    • 1.seek(n)光标移动到n位置,注意,移动的单位是byte.所以如果是UTF-8的中文部分要是3的倍数.通常我们使用seek都是移动到开头或者结尾.         移动到开头: seek(0)      
    • 移动到结尾: seek(0,2) seek的第二个参数表示的是从哪个位置进行偏移, 默认是0表示开头,1表示当前位置, 2表示结尾
    •  truncate() 截断文件如果想做截断操作.记住了.要先挪动光标.挪动到你想要截断的位置.然后再进行截断,关于truncate(n), 如果给出了n.则从开头开头进行截断, 如果不给n, 则从当前位置截断. 后面的内容将会被删除
    • 修改文件以及另一种打开文件的方式   
    • 文件修改: 1只能将文件中的内容读取到内存中,
        • 2将信息修改完毕,
        • 3然后将源文件删除,
        • 4将新文件的名字改成老文件的名字.
        • import os 
          with open("小娃娃", mode="r", encoding="utf-8") as f1,     
              open("⼩小娃娃_new", mode="w", encoding="UTF-8") as f2:    
          for line in f1:        
              new_line = line.replace("大白梨梨", "冰糖葫芦")        
              f2.write(new_line) 
          os.remove("小娃娃")    # 删除源文件
          os.rename("小娃娃_new", "小娃娃")     # 重命名新文件
          

            

    不要被眼前的迷雾遮住了双眼.
  • 相关阅读:
    C# winform 学习(三)
    (Java实现) 均分纸牌
    (Java实现) 拦截导弹
    Delphi从内存流中判断图片格式(好多相关文章)
    Qt之QTableView显示富文本(使用了QAbstractTextDocumentLayout和QTextDocument)
    MAC和PHY的区别(网线上传递的是模拟信号)
    Qt之模型/视图(自定义按钮)(重绘QStyleOptionButton)
    QQ音乐的请求
    Log4j、Log4j 2、Logback、SFL4J、JUL、JCL的比较
    LRU Cache
  • 原文地址:https://www.cnblogs.com/lingcai/p/9432296.html
Copyright © 2020-2023  润新知