• 相识python --------文件操作


    文件操作

    1. 找回文件的位置

    2. 进行一些操作

      r------ read

      w------write

      a-------追加

      rb----读字节

      wb ab r+ w+ a+

    3. 关闭文件

    open() 打开 open通过Python控制操作系统进行打开文件

    file 文件的位置

    mode 默认不写就是r

    encoding 文件的编码

    文件只能读取一次

    读操作

    打开一个文件的(存储地址)

    f = open("D:Python_s25day08小姐姐电话号",mode="r",encoding="utf-8")

    print (f.read()) 全部读取

    print(f.read(3)) 按照字节读取

    print(freadline()) 默认尾部有一个

    print(f.readline().strip()) 读取一行 将 去除

    print(f.readlines()) 一行一行的读 全部存储在列表中

    绝对路径

    open (r"r"D:Python_s25day08 1",mode="r",encoding="utf-8"))

    print(f.read())

    相对路经

    f = open ("t1",mode = "r",encoding = "utf-8")

    print (f.read())

    路经转义:.

    1."D:Python_s25day08 1"

    2.r"D:Python_s25day08 1" -- 推荐使用

    路经:

    ​ 1.绝对路径:从磁盘开始查找

    ​ 2.相对路径:相对某个文件进行查找

    字节操作不能指定 encoding编码

    f = open("timg.jpg",mode="rb")

    r 和 rb 的区别:

    ​ 1.r需要指定encoding,rb不需要

    ​ 2.r模式中的read(3)) 按照字节读取,rb 模式中的read(3)) 按照字节读取

    read 和readlines如果文件较大时,会出现内存外溢

    解决方案: 用for循环

    当文件较大时,使用for循环进行读取

    f = open ('t1',mode = 'r',encoding= "utf-8")

    For i in f :

    ​ print(i.strip())

    写操作

    w 操作: ========清空写(写的是文本))

    1. 先清空文件
    2. 写入内容

    当模式为w和a时,有文件就用当前文件,没有文件就创建一个文件

    ff = open("a",mode = "w", encoding="utf-8")

    ff.write("123") 写的内容必须是字符串

    ff = open("a1",mode="w",encoding="utf-8")

    ff = open("a1",mode="w",encoding="utf-8")

    ff.write("[1,2,3,4] ") # 写的内容必须是字符串

    ff.write('1111 ') # 写的内容必须是字符串

    ff.write('2222 ') # 写的内容必须是字符串

    wb -- 清空写(写字节)

    f = open('timg.jpg',mode="rb")

    f1 = open("g1.jpg",mode="wb")

    content = f.read()

    f1.write(content)

    a -- 追加写(文本)

    f = open("b1",mode="a",encoding="utf-8")

    f.write("你好啊 ")

    f.write("我好啊 ")

    f.write("他好啊 ")

    f.write("大家好啊 ")

    ab -- 追加写(字节)

    读写 (有点用)

    使用方式是错误的

    f = open("b1",mode="r+",encoding="utf-8")

    f.write("今天是周一")

    print(f.read())

    正确的操作:

    f = open("b1",mode="r+",encoding="utf-8")

    print(f.read())

    f.write("今天是周一")

    w+ 写读

    f = open("b1",mode="w+",encoding="utf-8")

    f.write("今天是周一")

    f.seek(0) # 移动光标

    print(f.read())

    f = open("b1",mode="w+",encoding="utf-8")

    f.write("今天是周一")

    f.seek(0) # 移动光标

    f.write("啊啊啊啊啊啊")

    f.seek(0)

    print(f.read())

    a+ 追加读 # 坑

    f = open("b1",mode="a+",encoding="utf-8")

    f.write("今天是周一")

    f.seek(0) # 移动光标

    f.write("啊啊啊啊")

    print(f.read())

    其他操作:

    seek() 移动光标

    f.seek(0,0) # 移动光标到文件的头部

    f.seek(0,1) # 移动光标到当前位置

    f.seek(0,2) # 移动光标到文件末尾

    .seek(6) # 光标是按照字节移动

    f = open("a1","r",encoding="utf-8")

    print(f.read(5))

    f.seek(0,0) # 移动光标到文件的头部

    f.seek(0,1) # 移动光标到当前位置

    f.seek(0,2) # 移动光标到文件末尾

    print(f.read())

    f = open("c1","r",encoding="gbk")

    f.seek(6) # 光标是按照字节移动

    print(f.read(3))

    查看光标:

    tell 查光标

    f = open("c1","r",encoding="gbk")

    print(f.read(3))

    print(f.tell()) # 按照字节进行计算

    刷新: 自己感兴趣自己去了解一下

    截取: 自己感兴趣自己去了解一下

    修改文件:

    import os # 操作系统交互的接口

    f = open('a2',"r",encoding="utf-8")

    f1 = open("a1","w",encoding="utf-8")

    for i in f:

    i = i.replace("日","天")

    f1.write(i)

    f.close()

    f1.close()

    os.remove("a2") # 删除不能找回

    os.rename("a1","a2")

    import os # 操作系统交互的接口

    f = open('a2',"r",encoding="utf-8")

    f1 = open("a1","w",encoding="utf-8")

    for i in f:

    i = i.replace("天","日")

    f1.write(i)

    f.close()

    f1.close()

    os.rename("a2","a3")

    os.rename("a1","a2")

    考点:

    import os # 操作系统交互的接口

    f = open('a2',"r",encoding="utf-8")

    f1 = open("a1","w",encoding="utf-8")

    i = f1.read().replace("天","日") # 将文件中部内容读取 容易导致内存溢出

    f1.write(i)

    f.close()

    f1.close()

    os.rename("a2","a3")

    os.rename("a1","a2")

    with open("a3","r",encoding="utf-8")as f,

    open('a2',"r",encoding="utf-8")as f1:

    print(f.read())

    print(f1.read())

    1.自动关闭文件

    2.同一时间操作多个文件

    文件操作的目的:

    1.持久化: 永久存储

  • 相关阅读:
    Redis Info详解
    ABAP常用事务码
    ABAP区别CLEAR、REFRESH、FREE
    virtualbox安装增强功能时【未能加载虚拟光盘】
    https://www.safaribooksonline.com/home/
    图文教程教您蓝底照片更换成白底和红底的方法
    URAL1495. One-two, One-two 2(dp)
    URAL1513. Lemon Tale(dp)
    URAL1900 Brainwashing Device(dp)
    Codeforces Round #228 (Div. 1)B
  • 原文地址:https://www.cnblogs.com/x-h-15029451788/p/11342797.html
Copyright © 2020-2023  润新知