【python学习】如何将所绘制的图(单张多张)保存到文件夹,并用绘制实时时间命名图片

article/2025/8/27 9:57:35

python图片保存到文件夹

  • 基本存储(plt.savefig())
  • 创建文件夹并存储图片(if结构+OS模块)
  • 批量绘制图片+批量存储(for循环)
  • 图片/文件夹命名与所运行时间关联(datatime模块)

最近一直在做实验但在解决问题时总是兜兜转转又回到原点,因此只能记录一些零碎的知识,在此用学术的语言记录最为简单的知识。
下面以循序渐进的方式记录将图片保存到文件夹的过程,由需求促进代码进一步完善。在此以本人解决这个问题所思考的步骤记录下来,主要是经历了以下几个过程:

  1. 过程一:单纯实现将所绘制的图片保存到代码所在目录(plt.savefig()
  2. 过程二:我想创建一个文件夹存储所绘制的图片(if结构+OS模块
  3. 过程三:我需要处理多张图片,能不能批量存储这些图片,并且每张图片的命名都不同(for循环
  4. 过程四:我想记录绘制这些图片的时间,并且最好就是图片名后面有时间(datatime模块

总得来说,最后是实现批量绘制并存储多张以时间命名的图片在同一个文件夹中(当然也可以放在不同的文件夹)

基本存储(plt.savefig())

#基本存储
import matplotlib.pyplot as plt
x=[0,1,2,3,4,5]
y=[0,2,4,6,8,10]
plt.plot(x,y)#绘制图片
plt.savefig( 'exam.png')#存储图片时给图片命名,注意要放在plt.show()前
plt.show()

【输出结果】(会在代码所在目录直接存储图片)
在这里插入图片描述【缺点】当输出的图片非常多时,逐一命名与存储既麻烦又会造成目录非常不好看
因此,下面可以基本想到要创建一个文件夹来存放图片

创建文件夹并存储图片(if结构+OS模块)

#存储图片同一个文件夹中
import matplotlib.pyplot as plt
import os#注意要输入OS模块
x=[0,1,2,3,4,5]
y=[0,2,4,6,8,10]
plt.plot(x,y)
# 指定图片保存路径
figure_save_path = "file_fig"
if not os.path.exists(figure_save_path):os.makedirs(figure_save_path) # 如果不存在目录figure_save_path,则创建
plt.savefig(os.path.join(figure_save_path , 'exam.png'))#第一个是指存储路径,第二个是图片名字
plt.show()

【输出结果】(会在代码所在目录创建一个名字为“file_fig”的文件夹,并存储名字为’exam.png’的图片)
在这里插入图片描述在这里插入图片描述【缺点】
这里的图片与文件夹均只是针对一张图片,一个文件夹,如果我的图片非常多,而且是通过循环来绘制的,那么此时可以考虑同样利用循环给每张图片逐一命名存储在同一个文件夹或是逐一存储在不同文件夹(主要是利用遍历列表,先将名字放在列表中,然后结合循环逐一赋予/使用)

批量绘制图片+批量存储(for循环)

#批量绘制图片+批量存储
import matplotlib.pyplot as plt
import os
for i in range(0,3,1):x=[i,1,2,3,4,5]y=[0,2,4,6,8,10]name_list=["one","two","three"]#先创建名字列表,可以是用在图片命名,也可以用在文件夹命名plt.plot(x,y)# 指定图片保存路径figure_save_path = "files_fig_many"#这里创建了一个文件夹,如果依次创建不同文件夹,可以用name_list[i]if not os.path.exists(figure_save_path):os.makedirs(figure_save_path) # 如果不存在目录figure_save_path,则创建plt.savefig(os.path.join(figure_save_path , name_list[i]))#分别命名图片plt.show()

【输出结果】(实现在代码所在文件夹创建一个名为”files_fig_many“的文件夹,里面存储了三张不同名字的图片)
在这里插入图片描述这里图片的名字是事先建立了列表存起来的,如果对名字没有特别要求,可以考虑直接用数字列表会更方便
【可改进】
这里图片的命名可以考虑改进一下,一般时候我们会希望用时间记录输出结果,因此可以考虑给图片/文件夹名字加上实时的时间

图片/文件夹命名与所运行时间关联(datatime模块)

这里与实际运行时间关联主要是用到datatime模块,因此需要对前面的代码加上这个模块

#将图片存储在指定文件夹(附带创建文件夹)+用循环创建文件名
import matplotlib.pyplot as plt
import os
import datetime#注意要输入这个模块
for i in range(0,3,1):x=[i,1,2,3,4,5]y=[0,2,4,6,8,10]name_list=["one","two","three"]#先把图片名字存储成列表files_name=["file_1_","file_2_","file_3_"]#先把文件夹名字存储成列表plt.plot(x,y)mkfile_time = datetime.datetime.strftime(datetime.datetime.now(), '%Y%m%d%H%M%S')#这里是引用时间mkfile_time = files_name[i]+mkfile_time#注意这里在下面是用作文件夹名字的,里面也用了列表使每个文件夹的名字不一样# 指定图片保存路径figure_save_path = mkfile_time#给文件夹赋予名字if not os.path.exists(figure_save_path):os.makedirs(figure_save_path) # 如果不存在目录figure_save_path,则创建plt.savefig(os.path.join(figure_save_path , name_list[i]))#分别创建文件夹,分别储存命名图片plt.show()

【输出结果】(实现了创建三个名字各不相同且有实时时间的文件夹,且里面分别存储了一张图片)
在这里插入图片描述
在这里插入图片描述这里只举了给文件夹名字加了时间的例子,如果想给图片名字加时间,方法也是一样的

#将图片存储在指定文件夹(附带创建文件夹)+用循环创建文件名+如何将多幅图片储存在同一个文件夹
import matplotlib.pyplot as plt
import os
import datetime
for i in range(0,3,1):x=[i,1,2,3,4,5]y=[0,2,4,6,8,10]name_list=["one","two","three"]plt.plot(x,y)mkfile_time = datetime.datetime.strftime(datetime.datetime.now(), '%Y%m%d%H%M%S')# 指定图片保存路径figure_save_path = "exam"if not os.path.exists(figure_save_path):os.makedirs(figure_save_path) # 如果不存在目录figure_save_path,则创建plt.savefig(os.path.join(figure_save_path , name_list[i]+mkfile_time))#创建文件夹,储存有时间命名的多张图片plt.show()

【输出结果】(输出一个文件夹中存储着带有实时时间命名的多张图片)
在这里插入图片描述记录结束


http://chatgpt.dhexx.cn/article/gYrHFu4b.shtml

相关文章

python读取图片、保存图片的方法

转自:https://jingyan.baidu.com/article/1876c852572d2f890b137609.html 分步阅读 本文介绍一下,python读取图片、保存图片的方法。 工具/原料 电脑 python3.6(anaconda) matplotlib模块 opencv模块 pillow模块 photomos…

python读取和保存图片的三种方法

python读取和保存图片 opencv import cv2 #load img cv2.imread(0.png) #show cv.imshow(title, img) #save cv2.imwrite(1_cv2.png,img)可以看到opencv读取的图片数据类型是uint8格式(属于numpy),uint8是专门用于存储各种图像的&#xff…

python读取与保存图片的exif信息

图片的exif文件格式中保存了很多信息,比如GPS经纬度,高度,焦距等信息。 在图片的属性中可以看到这些信息: 我们可以使用python来进行exif数据的读取和保存。 1. 首先安装piexif pip3 install piexif 2.exif数据读取代码 impo…

Python 保存图片的两种方法

有时我们需要保存我们的图片,那我们可以怎么保存呢? 可参考下列保存的两种方法: 第一种:cv2.imwrite() 示例: # 方法一 : import cv2 cv2.imwrite("imwrite_pic.jpg", cv2.imread(pic.jpg)) 第二种:i…

python图片存取四种常用方法记录

一、PIL(Python Imaging Library)#python图像处理库 from PIL import Image import numpy as np #数值计算扩展包I Image.open("1.jpg") #读入图片 I.show() #显示图片 print(I) …

python保存图片的常用方法

保存图片的常用方法 1.PIL的保存图片方法 path r"./001.jpg" #图片路径 img Image.open(path) #打开图片 img.save("1.jpg") #将图片保存为1.jpg2.opencv保存图片 path r"./001.jpg" #图片路径 #img cv.imdecode(np.fromfi…

本地及服务器如何清除redis缓存

1、本地环境清除redis缓存 我用的redis管理工具是RedisDesktopManager,安装可参考https://blog.csdn.net/lihua5419/article/details/80661826 清除缓存命令为flushall,如下图所示: 2、服务器上清除redis缓存 我们服务器用的是Linux系统&a…

Redis 缓存删除策略

Redis(Remote Dictionary Server ),即远程字典服务,是一个开源的使用ANSI C语言编写、支持网络、可基于内存亦可持久化的日志型、Key-Value数据库,并提供多种语言的API。 Redis是一个key-value存储系统。和Memcached类似&#xf…

Linux下redis清理缓存

1、先确保redis进程存在: 2、进入redsi下面的bin目录; 3、执行:执行./redis-cli登陆; 4、查看当前数据库key的数量,执行:dbsize命令 (如果出现(error) ERR unknown command ‘(error)’ &#x…

利用Redis进行数据缓存

1. 引言 缓存有啥用? 降低对数据库的请求,减轻服务器压力提高了读写效率 缓存有啥缺点? 如何保证数据库与缓存的数据一致性问题?维护缓存代码搭建缓存一般是以集群的形式进行搭建,需要运维的成本 2. 将信息添加到…

Linux下如何清空Redis缓存

1.首先进到redis的安装目录,进到src目录下,找到redis-cli 2.首先用账号密码的方式进入到redis的服务端 ./redis-cli -h 127.0.0.1 -p 6379 进去后会出现下面的界面ip:port> 然后,输入密码进行鉴权>auth "yourpassword"&a…

redis如何清空指定缓存和所有缓存

Windows环境下使用命令行进行redis缓存清理 1.访问redis根目录 cd D:\development_tools\redis64-3.0.501 2.登录redis:redis-cli -h 127.0.0.1 -p 6379 3.查看所有key值:keys * 4.删除指定索引的值:del key 5.清空整个 Redis 服务器的数据&…

redis删除缓存

首先下载一个redis可视化管理页面:RedisDesktopManager, 1、点击连接到redis服务器 2、 填写连接Ip地址,端口(默认6379),有密码填写密码,没用密码就不用填写了,然后点击测试连接,连接成功后,可以找到自己…

如何清理Redis中的缓存

首先在cmd模式下进入redis的目录, 然后使用 redis-cli -p 6379(指定进入的端口号,本人的端口号为6379) 进入该端口的redis数据库之后有以下两种清空缓存的命令 1.清空当前redis数据库缓存flushdb flushdb 2.清空整个redis缓存flushall flushall

redis如何清空缓存

前言: 如果你们的项目用到redis啦,虽然设置了过期时间,但有时候修改bug,仍然需要及时清空缓存,去读数据库的数据,所以这篇文章讲解如何在linux下清除redis的缓存。 正文: 1.首先进到redis的安…

redis如何清空当前缓存和所有缓存

Windows环境下使用命令行进行redis缓存清理 1、redis安装目录下输入cmd 2、redis-cli -p 端口号 3、flushdb 清除当前数据库缓存 4、flushall 清除整个redis所有缓存 客户端直接 右键即可:

redis 清理缓存

----windos 方法1,重启redis也能请缓存。 方法2,清缓存前确保redis-server.exe进程已经启动,然后打开redis-cli.exe,跳出的CMD里面输入flushall,显示OK就可以了。 flushall:清空整个redis 服务器的数据(删除…

redis清理缓存

redis如何清空缓存 如果你们的项目用到redis啦,虽然设置了过期时间,但有时候修改bug,仍然需要及时清空缓存,去读数据库的数据,所以这篇文章讲解如何清除redis的缓存。 正文 1.首先进到redis的安装目录,进…

WPS为公式编号

首先打开标尺,看一下中间位置(放公式),和后面位置(放编号)的刻度是多少,我中间位置目测是17个字符,后面位置是38个字符 为你的公式新建一个样式 这里主要注意两个地方,“制表位”和“段落”…

mathtype自动设置公式编号及更新

在写论文的时候难免要用到mathtype,mathtype相对来说还是好用的 使用mathtype的好处之一是可以利用mathtype自动设置公式编号及更新,非常方便,而且可以引用公式,在删除公式时不用手动更新公式编号,mathtype可以自动帮你…