如何将Matplotlib图表保存到文件夹(含自动创建文件夹方法)
解决Matplotlib保存图表时的FileNotFoundError问题
出现这个错误的核心原因是plt.savefig不会自动创建不存在的目标文件夹,必须先手动创建对应目录,以下是两种可行的解决方法:
方法1:使用os模块(兼容所有Python版本)
先检查目标目录是否存在,不存在则创建,再执行保存操作:
import os import matplotlib.pyplot as plt # 定义目标文件夹路径 output_dir = 'output' # 创建文件夹(不存在时才创建,支持多级嵌套目录) if not os.path.exists(output_dir): os.makedirs(output_dir) # 示例:绘制简单图表 plt.plot([1, 2, 3], [4, 5, 6]) # 拼接路径并保存图表 plt.savefig(os.path.join(output_dir, 'output.png')) # 关闭图表释放资源 plt.close()
os.makedirs()可以一次性创建多级嵌套目录(比如output/figures/subfig),比仅支持单级目录的os.mkdir()更通用。
方法2:使用pathlib模块(Python3.4+推荐)
这是更现代的文件路径处理方式,代码简洁直观:
from pathlib import Path import matplotlib.pyplot as plt # 定义目标文件夹路径 output_dir = Path('output') # 创建文件夹,exist_ok=True表示文件夹已存在时不报错 output_dir.mkdir(exist_ok=True) # 示例:绘制简单图表 plt.plot([1, 2, 3], [4, 5, 6]) # 用Path对象的/运算符拼接路径并保存 plt.savefig(output_dir / 'output.png') plt.close()
注意事项
- 确保当前运行环境有目标路径的写入权限,否则会抛出
PermissionError - 如果使用绝对路径(如
C:/Users/xxx/output或/home/user/output),只需替换对应的路径字符串即可,两种方法同样适用
内容的提问来源于stack exchange,提问作者Trần Nguyễn
相关产品推荐
相关产品推荐

