zoukankan      html  css  js  c++  java
  • 文件的操作

    • 文件操作的初识
      • a.txt
      • 利用python代码去操作文件.(利用python代码写一个很low的软件,操作文件.)
        • 文件路径:path
        • 打开方式:mode(r(读),w(写),a(追加),读写,写读)
        • 编码方式:utf-8 ,gbk,gb2312....
      • open
          	open 内置函数,open底层调用的是操作系统的接口
          	f1,变量.  (f1,fh,file,file_handler,f_h)   文件句柄.通过对文件的任何操作都会通过文件句柄. 的方式.
          	encoding:可以不写,不写参数,默认编码本.默认编码本:操作系统的默认的编码
          	****文件句柄****是一个迭代器
          	windows:gbk
          	linux:utf -8
          	mac: ust -8
          	f.close (关闭文件)
          
      • 文件操作三步
        1. 打开文件
        2. 对文件句柄的操作
        3. 关闭文件
      • 文件报错:
        1. unicodeDecodeError 错误,编译错误
        2. 路径分隔符产生异议: 路径前面加r
    • 文件操作的读
      • r,rb(bytes模式读),r+(读写),r+b...四种模式
        • r
          • read() 全部读取出来
          • read(n) 读取n个字符
          • readline() 读取一行
          • readlines() 返回一个列表,列表中的每个元素是原文件的每一行
          • for i in f.
        • rb(操作的是非文本的文件[图片,视频,音频],但可以操作文本文件)
    • 文件操作的写
      • w,wb,w+,w+b
        • w
          • 没有文件创建文件,有文件则先清空.再写入新内容.
        • wb(操作的是非文本的文件[图片,视频,音频],但可以操作文本文件)
    • 文件操作的追加
      • a,ab,a+,a+b
        • a.有文件在原文件追加内容,没文件创建文件.追加内容
    • 文件操作的其他模式
      • r+ :读并追加.先读后写.先写后读会导致写的时候光标在最前面.覆盖.所有顺序不能错,必须先读后追加
    • 文件操作的其他功能
      • 总结
        • 三个大方向(读,写,追加)
        • 读 四种模式:r rb r+ r+b
        • 写 四种模式:w wb w+ w+b
        • 追加 四种模式:a ab a+ a+b
          相应的功能:对文件句柄的操作. read read() readline() readlines() write()
        • tell() 查看光标的当前位置(字节)
        • seek(n) 调整光标的位置 n =0 调整光标到开始.n = -2光标调整到最后
        • flush 强制刷新(保存) 在写的后面一般f.flush()
    • 打开文件的另一种方式
      • with open
        • 优点:不用手动关闭文件句柄
        • 优点:可以同时打开多个文件.
    • 有关清空:
      • 关闭文件句柄,再次以w模式打开此文件时,才会清空.
    • 文件操作的改
      1. 以读的模式打开源文件.
      2. 以写的模式创建一个新文件
      3. 将原文件的内容读出来修改成新内容.写入新文件.
      4. 将原文件删除.
      5. 将新文件重命名为原文件.
        import os
        with open("alex",encoding="utf -8") as f1,
            open("alex1",encoding="utf8",mode="w")as f2:
            for a in f1:
        
                lin = a.replace("SB","sb")
                f2.write(lin)
        
        
        os.remove("alex")
        os.rename("alex1","alex")
        

    今日总结

    • 文件操作.
      • r w a rb wb r+ 重点记
      • read() writer() tell() seek() flush()
      • 文件改的代码必须会默写
  • 相关阅读:
    归并排序(Merge Sort)
    AtCoder AGC035D Add and Remove (状压DP)
    AtCoder AGC034D Manhattan Max Matching (费用流)
    AtCoder AGC033F Adding Edges (图论)
    AtCoder AGC031F Walk on Graph (图论、数论)
    AtCoder AGC031E Snuke the Phantom Thief (费用流)
    AtCoder AGC029F Construction of a Tree (二分图匹配)
    AtCoder AGC029E Wandering TKHS
    AtCoder AGC039F Min Product Sum (容斥原理、组合计数、DP)
    AtCoder AGC035E Develop (DP、图论、计数)
  • 原文地址:https://www.cnblogs.com/luyi84895838/p/10839279.html
Copyright © 2011-2022 走看看