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

    1、文件操作

    1.1 基本模式

    # 格式         f = open("相对路径/绝对路径",mode = "模式",encoding = "编码级")
    ​
    # 模式
    # w ------> write   (不存在则创建,存在则清空,光标在最后)
    # r ------> read    (不存在则报错,光标在开头,参数为字符)
    # a ------> append  (不存在则创建,存在则追加,强制光标在最后)
    ​
    # 1 打开文件
    f = open("practice.txt",mode="w",encoding="utf-8")
    # 2 写入内容
    f.write("我爱中国")
    # 3 关闭文件
    f.close()
    

      

    1.2 字节流模式

    # bytes(b'123')  只能识别 ascll 编码,需要编码、解码
    ​
    # wb
    # rb
    # ab
    ​
    f1 = open("practice.txt",mode="wb")
    f1.write("我爱中国".encode())
    f1.close()
    ​
    f2 = open("practice.txt",mode="rb")
    res = f2.read()
    f2.close()
    print(len(res))                                  # 计算二进制字节流的长度(12)
    res1 = res.decode()                              # 把二进制字节流解码为utf-8
    print(res,res1)                                  # b'xe6x88x91xe7x88xb1xe4xb8xadxe5x9bxbd' 我爱中国
    

      

    1.2.1 脚本复制图片

    # 不指定 encoding 
    f = open("picture.png",mode = "rb")
    res = f.read()
    f.close()
    f = open("picture副本.png",mode = "wb")
    f.write(res)
    f.close()
    

      

    1.3 扩展模式

    # r+
    # r+ 先读后写
    f = open("practice.txt",mode="r+",encoding="utf-8") 
    # 先读
    res = f.read()
    print(res)
    # 后写
    f.write("人生苦短")
    # 在读
    f.seek(0) # 调整光标位置在开头
    res = f.read()
    print(res)
    f.close()
    ​
    # r+ 先写后读
    f = open("practice.txt",mode="r+",encoding="utf-8")
    f.seek(0,2) # 调整光标位置在末尾
    f.write("我用python")
    ​
    f.seek(0)
    res = f.read()
    print(res)
    f.close()
    # w+
    # a+
    # r+b
    # w+b
    # a+b
    

      

     

    1.4 with 语法(不需要close)

    # 格式一
    with open("相对路径/绝对路径",mode = "模式",encoding = "编码级") as f :
        pass
    ​
    # 格式二
    with open("相对路径/绝对路径",mode = "模式",encoding = "编码级") as f1 ,open("相对路径/绝对路径",mode = "模式",encoding = "编码级") as f2 :
        pass
    

      

    1.5 flush 刷新缓冲区

    # write 只写到内存
    """
    1、文件关闭时,自动刷新缓冲区
    2、程序运行结束时,自动刷新缓冲区
    3,缓冲区内存写满时,自动刷新缓冲区
    """
    # 4、手动刷新刷冲区,f.flush
    f = open("practice.txt",mode="w",encoding="utf-8")
    while True:
        data = input("请输入内容:")
        f1.write(data)
        f1.flush()
    f1.close()
    

      

    1.6 文件方法

    f.seek(0)                  # 调整光标位置到开头(字节)
    f.seek(0,2)                # 调整光标位置到最后
    f.tell()                   # 光标位置向左到开头的字节数
    f.readable()               # 判断文件是否可读
    f.writable()               # 判断文件是否可写
    f.readline()               # 读一行
    f.readlines()              # 读所有行,原型存入列表
    f.writelines()             # 写入内容是字符串的可迭代的数据
    f.truncate()               # 截取字节,清空文件,再写入截取内容
    

      

     

  • 相关阅读:
    hdu 1280 排序水题
    hdu 3336 KMP+DP (仍不懂)
    懂点PS技巧,你会减少很多痛苦
    ajax返回值中有回车换行、空格的解决方法分享
    windows7系统下让所有文件夹都使用同一种视图的方法
    LINUX常用命令大全归纳篇
    js 运算符
    获取修改父页面元素
    while跟do...while的用法
    jQuery取得select选择的文本与值
  • 原文地址:https://www.cnblogs.com/zhoulangshunxinyangfan/p/13308539.html
Copyright © 2011-2022 走看看