python读写文件学习笔记

文章目录

介绍

  1. python中文件读写的内置函数,返回文件对象
  2. 使用普通方式打开文件需要使用close()方法手动关闭,使用with方式打开不需要
  3. 编码
    1. Windows(也跟使用的编辑软件有关)中普通文本默认使用ANSI编码(GBK),Linux中默认使用utf-8
    2. GBK兼容GB2312,GBK是在GB2312基础上发展起来的,它不仅包含了GB2312的所有字符,还扩展了更多的字符
  4. 这里主机介绍文件内容的读写操作,其它操作可参考内置模块:pathlib

语法

  1. 语法

    py 复制代码
    file = open(filename[,mode[,buffering]],[encoding])
  2. mode参数

    参数 如果不存在 解释
    r 报错 以只读模式打开文件。文件的指针将会放在文件的开头
    rb 报错 以二进制格式打开文件,并且采用只读模式。文件的指针将会放在文件的开头。一般用于非文本文件,如图片、声音等
    r+ 报错 打开文件后,可以读取文件内容,也可以写入新的内容覆盖原有内容(从文件开头进行覆盖)
    rb+ 报错 以二进制格式打开文件,并且采用读写模式。文件的指针将会放在文件的开头。一般用于非文本文件,如图片、声音等
    w 创建 以只写模式打开文件
    wb 创建 以二进制格式打开文件,并且采用只写模式。一般用于非文本文件,如图片、声音等
    w+ 创建 打开文件后,先清空原有内容,使其变为一个空的文件,对这个空文件有读写权限
    wb+ 创建 以二进制格式打开文件,并且采用读写模式。一般用于非文本文件,如图片、声音等
    a 创建 以追加模式打开一个文件。如果该文件已经存在,文件指针将放在文件的末尾(即新内容会被写入到已有内容之后),否则,创建新文件用于写入
    ab 创建 以二进制格式打开文件,并且采用追加模式。如果该文件已经存在,文件指针将放在文件的末尾(即新内容会被写入到已有内容之后),否则,创建新文件用于写入
    a+ 创建 以读写模式打开文件。如果该文件已经存在,文件指针将放在文件的末尾(即新内容会被写入到已有内容之后),否则,创建新文件用于读写
    ab+ 创建 以二进制格式打开文件,并且采用追加模式。如果该文件已经存在,文件指针将放在文件的末尾(即新内容会被写入到已有内容之后),否则,创建新文件用于读写
  3. buffering参数

    参数 解释
    0 不缓存
    1 缓存
    大于1 缓冲区的大小

使用with语句

  1. 使用普通方式打开文件需要手动关闭文件,而使用with不需要手动关闭文件

  2. 语法

    py 复制代码
    with expression as target:
        with-body
  3. expression为open函数,target为对象名称

常用方法和属性

  1. 文件对象方法属性表

    类型 字符 描述
    属性 closed 查看文件是否关闭,返回布尔值
    方法 close() 关闭文件
    方法 write(字符串) 向文件写入内容
    方法 flush() 将缓存内容写入文件
    方法 read([字符个数]) 如果省略字符个数(英文和汉字都算1个字符)将读取全部内容,返回字符串类型,注意:打开文件的模式只能是:r或r+
    方法 readline() 读取一行,返回字符串类型,注意:打开文件的模式只能是:r或r+
    方法 readlins() 读取全部行,返回列表类型,注意:打开文件的模式只能是:r或r+
    方法 seek(开始位置) 文件内指针(简单理解为光标)位置操作,从0开始,字符计算方法跟编码方案有关

实例

写入文件实例

  1. 代码

    py 复制代码
    file = open('test6.txt','w',encoding='utf-8')
    file.write('python写入文件测试')
    file.close()

读取文件实例

  1. encoding='utf-8'为默认值,可以不写,如果是其他编码则需要指定

  2. 代码

    py 复制代码
    file = open('test6.txt',encoding='utf-8')
    con = file.read()
    file.close()
    print(con)

读取所有行实例

  1. 如果不使用循环,只能读取到第一行

  2. 返回列表类型,每个元素为一个字符串,即文件内的一行内容

  3. 代码

    py 复制代码
    with open('test6.txt',encoding='utf-8') as f:
        con = f.readlines()
    print(con)

逐行读取实例

  1. 适合文件较大,一次性读取所有,占用内存过多

  2. 如果不使用循环,只能读取到第一行

  3. 代码

    py 复制代码
    with open('test6.txt',encoding='utf-8') as f:
        while True:
            line = f.readline()
            if not line:
                break
            print(line)

一次读取整个文件实例

  1. 返回字符串类型,适合不是很大的文件

  2. 代码

    py 复制代码
    with open('test6.txt',encoding='utf-8') as f:
        con = f.read()
    print(con)
相关推荐
databook8 小时前
Manim实现闪光轨迹特效
后端·python·动效
Juchecar9 小时前
解惑:NumPy 中 ndarray.ndim 到底是什么?
python
用户8356290780519 小时前
Python 删除 Excel 工作表中的空白行列
后端·python
Json_9 小时前
使用python-fastApi框架开发一个学校宿舍管理系统-前后端分离项目
后端·python·fastapi
数据智能老司机16 小时前
精通 Python 设计模式——分布式系统模式
python·设计模式·架构
数据智能老司机17 小时前
精通 Python 设计模式——并发与异步模式
python·设计模式·编程语言
数据智能老司机17 小时前
精通 Python 设计模式——测试模式
python·设计模式·架构
数据智能老司机17 小时前
精通 Python 设计模式——性能模式
python·设计模式·架构
c8i17 小时前
drf初步梳理
python·django
每日AI新事件17 小时前
python的异步函数
python