文件内容操作

打开

返回文件句柄
不存在则创建、存在则覆盖

访问模式

r/w/a

文件指针

指向读写起始地址
EOF 文件结尾
tell/seek

从何处开始读,读多少内容

  1. 全部内容
  2. 第一行内容
  3. 前n个字符/字节

read

从何处开始写,写多少内容

行写入(自动换行,写入内容自动添加换行符)

关闭

多文件内容操作

同时读多个文件

fileinput.input()
cat

文件目录操作

文件路径

绝对路径abs
相对路径rel
路径结尾/处理方式

文件属性

文件大小、修改时间

os.stat()
stat()

目录列表

os.listdir(path)
os.scandir(path).name
pathlib.Path(path).name

文件过滤

os.path.isfile(path)
ScandirIterator.is_file()
os.path.isdir()
is_dir()

文件名模式匹配

endswith()/startswith() 扩展名
fnmatch.fnmatch() *和?等通配符
glob.glob()
pathlib.Path.glob()

创建目录

os.mkdir()
pathlib.Path().mkdir() FileExistsError
os.makedirs()
pathlib.Path().mkdir(parents=True, exist_ok=True)

遍历

os.walk()

删除

删除单文件

pathlib.Path.unlink()
os.unlink()
os.remove()

删除空目录

os.rmdir()
pathlib.Path.rmdir()

删除完整目录树

shutil.rmtree()

复制移动重命名

复制单文件

shutil.copy()
仅复制文件的内容和文件的权限。 其他元数据(如文件的创建和修改时间)不会保留。
shutil.copy2()
保留所有文件元数据

复制目录

shutil.copytree()

移动文件目录

shutil.move()

重命名

os.rename()
pathlib.Path().rename()

文件格式解析

根据文件类型(后缀:txt、csv、ini、yaml、json等)解析