文件介绍

  • 什么是文件
  • 狭义说:文本文件;广义说:超文本文件, 图片,声音,超链接,视频
  • 文件的分类
  • 文件大体上可以分为两类,文件文件和二进制文件
  • 文件的作用
  • 数据持久化
  • 文件的操作流程
  • 打开文件
  • 读写
  • 关闭文件

读写文件操作

  • 读取文件操作
f = open('123.txt',mode='r')
content = f.read()
f.close()
  • 写文件操作
f = open('123.txt',mode='w')
f.write('HelloWorld')
f.close()

文件权限

  • 读操作
  • r
  • 以只读方式打开文件。文件的指针将会放在文件的开头。这是默认模式
  • rb
  • 以二进制格式打开一个文件用于只读。文件指针将会放在文件的开头。一般用于 非文本文件如图片等。 注意:二进制文件把内容表示为一个特殊的 bytes 字符串类型。
  • r+
  • 打开一个文件用于读写。文件指针将会放在文件的开头
  • rb+
  • 以二进制格式打开一个文件用于读写。文件指针将会放在文件的开头。一般用于 非文本文件如图片等
  • 写操作
  • w
  • 打开一个文件只用于写入。如果该文件已存在则打开文件,并从开头开始编辑, 即原有内容会被删除。如果该文件不存在,创建新文件
  • wb
  • 以二进制格式打开一个文件只用于写入。如果该文件已存在则打开文件,并从开 头开始编辑,即原有内容会被删除。如果该文件不存在,创建新文件。一般用于 非文本文件如图片等。
  • w+
  • 打开一个文件用于读写。如果该文件已存在则打开文件,并从开头开始编辑,即 原有内容会被删除。如果该文件不存在,创建新文件
  • wb+
  • 以二进制格式打开一个文件用于读写。如果该文件已存在则打开文件,并从开头 开始编辑,即原有内容会被删除。如果该文件不存在,创建新文件。一般用于非
  • a
  • 打开一个文件用于追加。如果该文件已存在,文件指针将会放在文件的结尾。也 就是说,新的内容将会被写入到已有内容之后。如果该文件不存在,创建新文件 进行写入。
  • ab
  • 以二进制格式打开一个文件用于追加。如果该文件已存在,文件指针将会放在文 件的结尾。也就是说,新的内容将会被写入到已有内容之后。如果该文件不存在, 创建新文件进行写入
  • a+
  • 打开一个文件用于读写。如果该文件已存在,文件指针将会放在文件的结尾。文 件打开时会是追加模式。如果该文件不存在,创建新文件用于读写。
  • ab+
  • 以二进制格式打开一个文件用于追加。如果该文件已存在,文件指针将会放在文 件的结尾。如果该文件不存在,创建新文件用于读写 文本文件如图片等。

文件操作

  • 读取
  • read(size)
  • 调用 read()会一次性读取文件的全部内容
  • readlines()
  • 一次性以行的形式读取文件的所有内容并返回一个 list,
  • readline()
  • 每次读取一行,并且自带换行功能 每一行末尾会读到\n
  • for循环读取
  • file 句柄是一个可迭代的对象因此,可以循环读取文件中的内容,每次读一行
f = open('123.txt',mode='r')
for content in f:
    print(content)
  • 写入
  • write(str)
  • writelines(list)
f.writelines(['a','b\n','c'])

with

  • 可以不用手动关闭文件,会自动关闭文件

乱码

  • 如果遇到编码不识别的问题
  • 可以在打开文件时,手动指定编码方式
with open('log.txt',mode='r',encoding='utf-8') as f:
            pass

os模块

  • 重命名文件
  • os.rename(src,dst)
os.rename('123.txt','124.txt')
  • 删除文件
  • os.remove(path)
os.remove('123.txt')
  • 创建目录
  • os.mkdir()
  • 创建多级目录
  • os.makedirs()
  • 删除目录
  • os.rmdir()
  • 删除多级目录
  • os.removedirs()
  • 获取当前目录
  • os.getcwd()
  • 修改所在目录
  • os.chdir()
  • 判断文件是否存在
  • os.path.exists()
  • 判断是否为文件
  • os.path.isfile()
  • 判断是否为目录
  • os.path.isdir()
  • 获取绝对路径
  • os.path.abspath()
  • 判断是否为绝对路径
  • os.path.isabs()
  • 获取路径的最后部分
  • os.path.basename()
  • 获取父级路径
  • os.path.dirname()
  • 获取文件夹内的子文件
  • os.listdir()