• Python技能树——进阶语法讲解(3)


    此篇是最后一篇,我们完结撒花,本来也是过度栏目篇,所以我们在此篇之讲解文件处理方面的。

    文件处理

    (1)文件的打开

    open()函数有两个参数:文件名和模式。

    它的语法是:

    f = open("coco.names")

    如果不添加模式,那它默认的就是"rt"。

    open()函数有四种打开文件的不同模式:

    1. "r" - 读取 - 默认值。打开文件进行读取,如果文件不存在则报错。
    2. "a" - 追加 - 打开供追加的文件,如果不存在则创建该文件。
    3. "w" - 写入 - 打开文件进行写入,如果文件不存在则创建该文件。
    4. "x" - 创建 - 创建指定的文件,如果文件存在则返回错误。

    此外,您可以指定文件是应该作为二进制还是文本模式进行处理。

    1. "t" - 文本 - 默认值。文本模式。
    2. "b" - 二进制 - 二进制模式(例如图像)。

    (2)文件的读取

     open()函数返回文件对象,此对象有一个read()方法用于读取文件的内容:

    1. f = open("coco.names", "r")
    2. print(f.read())

        在很多时候,我们需要按行读取文件,可以使用readline()的方法返回一行:

    1. f = open("coco.names", "r")
    2. print(f.readline())

    我们始终不能忘记,要记得关闭文件:

    1. f = open("coco.names", "r")
    2. print(f.readline())
    3. f.close()

    (3)文件的写入

    我们有两种方法:

    • "a" - 追加 - 追加到文件的末尾
    1. f = open("coco.names", "a")
    2. f.write("Add new content to this file!")
    3. f.close()
    4. # 追加后,打开并读取该文件:
    5. f = open("coco.names", "r")
    6. print(f.read())
    • "w" - 写入 - 覆盖已有的内容
    1. f = open("coco.names", "w")
    2. f.write("Overwrite the existing contents of the file!")
    3. f.close()
    4. # 写入后,打开并读取该文件:
    5. f = open("coco.names", "r")
    6. print(f.read())

    (4)创建新文件

    • "x"- 创建 - 将创建一个文件,如果文件存在则返回错误
    • "a" - 追加 - 如果指定的文件不存在,将创建一个文件
    • "w" - 写入 - 如果指定的文件不存在,将创建一个文件

    (5)文件的删除

    删除文件,需要导入 OS 模块,并运行其os.remove()函数

    为避免出现错误,在尝试删除文件之前检查该文件是否存在:

    1. import os
    2. if os.path.exists("coco.names"):
    3. os.remove("coco.names")
    4. else:
    5. print("The file does not exist")

    要删除整个文件夹,请使用os.rmdir()方法:

    1. import os
    2. os.rmdir("my_file")

  • 相关阅读:
    GZ031 应用软件系统开发赛题第1套
    Xilinx 7系列 clock IP核的使用(二)
    自学人工智能该从哪里开始准备?
    CSS盒子模型及属性
    基于Vue+Element-ui开发的一个“月日组件”,并发布npm包
    独立站卖家需要做SEO
    ubuntu 20.04.4+uWSGI+Nginx安装部署Django+Vue的web前后端全过程记录(2-Vue)
    力扣——并查集算法系列
    计算机网络 - NAT技术
    Redis缓存 缓存穿透+缓存雪崩+缓存击穿的原因及其解决方案
  • 原文地址:https://blog.csdn.net/m0_62919535/article/details/126758842