python-文件操作

1. 文件操作

  • 文件读取指针概念
    python 使用open().read()读取文件时,是按行从上向下读取,当他读取一行时,会给那行设置一个下标(个人理解)来标注当前读取到那行了,在向下读取过程中,下标逐步增加,直至到最后一行,这个下标即为指针.

  • 模式说明

    标识符 描述 文件要求
    r 只读模式, 只允许读取文件内容 文件必须存在
    r+ 读写模式, 可读可写,不分先后,但写入只能写
    入到末尾行
    文件必须存在
    b 二进制操作模式,使用场景一般文操作流文件 -
    w 新建模式, 写入新的文件内容 若存在文件,清空文件内容,不存在新建
    w+ 写读模式, 可以边写边读,读是从实际的指针位
    置开始,可指定指针到开头读取写入内容
    存在文件,清空文件内容,不存在新建
    a 追加模式, 可写但不允许读,只允许从最后一
    行开始追加
    存在直接操作,不存在新建
    a+ 追加读模式, 可读可写,写只能写入到末尾行 存在直接操作,不存在新建
    U 表示在读取文件时候,将\r\n统一转成\n,
    使用场景一般是在linux上读取win的文件
    -

1.1. 基础语法

# 打开为文件对象, 默认 mode = "r", encoding="系统编码" f = open("file.md") # 读取文件内容 data = f.read() f1 = open("file1.md","w",encoding="utf-8") # 写入内容到文件 f1.write("hello python") f2 = open("file1.md","a",encoding="utf-8") f2.write("hello python2") # 文件流关闭 在持续执行程序中必须在文件操作完毕后进行关闭 f.close()

1.2. 常规操作

f = open("file1.md","r",encoding="utf-8") # 打印一行 并将指针向下偏移一次 print(f.readline()) # 读取所有行类容,将其转换为以\n为结尾的列表,使用循环遍历每一行 print(f.readlines()) # 打印已读取的光标位置(列)从0开始,字符读取,字节计数(末尾\n) print(f.tell()) # 读取3个字符 print(f.read(3)) # 设置上一读取行指针位置 f.seek(2) #打印文件编码 print(f.encoding) # 判断文件是否是一个可读取的文件 print(f.seekable()) # 在文件写入后,清空缓存区内容到文件当中 f.flush() # 在文件的追加模式下,从文件开头(0指针)位置开始截断并重新写入指定长度的字符串 f.truncate(6)

1.3. 文件读取 with语句

with open("file1.md","r",encoding="utf-8") as f: for line in f: print(line) # with 语句也可以同时打开多个文件 with open("file1.md","r",encoding="utf-8") as f1,\ open("file2.md","r",encoding="utf-8") as f2: print(f1.readlines()) print(f2.readlines())