文件读写
文件读写中,我们使用 Python 内置函数 open 操作文件
# open 语法如下
open(file, mode='r', buffering=-1, encoding=None, errors=None, newline=None, closefd=True, opener=None)
文件打开模式
| 模式 | 说明 |
|---|---|
r | 只读(默认), 文件必须存在 |
w | 只写, 文件不存在则创建, 存在则清空 |
a | 追加写入, 文件不存在则创建 |
r+ | 读写, 文件必须存在 |
w+ | 读写, 文件不存在则创建, 存在则清空 |
a+ | 读写追加, 文件不存在则创建 |
rb | 二进制只读 |
wb | 二进制只写 |
推荐使用 with 语句
使用 with 语句打开文件,可以自动关闭文件,避免忘记调用 close():
with open("path/to/file.txt", "r") as f:
content = f.read()
# 离开 with 块后文件自动关闭
路径
usb 版本的路径为电脑的文件路径
创建文件
使用 w 或 a 模式打开文件时,如果文件不存在会自动创建
# 创建一个文件
file = open("D:/a.txt", mode='w')
file.close()
# 推荐写法: 使用 with 自动关闭
with open("D:/a.txt", "w") as f:
f.write("Hello")
创建文件夹
创建文件夹用到了 os 模块
创建单层目录
import os
path = "D:/a" # 在D盘下创建一个a目录
os.mkdir(path)
递归创建多层目录
import os
# 一次性创建多层目录, 父目录不存在也会自动创建
os.makedirs("D:/a/b/c", exist_ok=True)
exist_ok=True 表示如果目录已存在不会报错.
删除文件
删除单个文件
import os
os.remove("D:/a.txt")
删除空文件夹
import os
os.rmdir("D:/a")
递归删除文件夹(含内容)
import shutil
# 删除整个目录及其所有内容
shutil.rmtree("D:/a")
注意
shutil.rmtree 会删除目录下的所有文件和子目录,请谨慎使用.
判断文件/目录
判断文件是否存在
import os
if os.path.exists("D:/a.txt"):
print("文件存在")
else:
print("文件不存在")
判断是否为文件
import os
if os.path.isfile("D:/a.txt"):
print("这是一个文件")
判断是否为目录
import os
if os.path.isdir("D:/a"):
print("这是一个目录")
获取文件信息
获取文件大小
import os
size = os.path.getsize("D:/a.txt")
print(f"文件大小: {size} 字节")