IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> Python知识库 -> 【python学习】如何将所绘制的图(单张/多张)保存到文件夹,并用绘制实时时间命名图片 -> 正文阅读

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


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

  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()

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

  Python知识库 最新文章
Python中String模块
【Python】 14-CVS文件操作
python的panda库读写文件
使用Nordic的nrf52840实现蓝牙DFU过程
【Python学习记录】numpy数组用法整理
Python学习笔记
python字符串和列表
python如何从txt文件中解析出有效的数据
Python编程从入门到实践自学/3.1-3.2
python变量
上一篇文章      下一篇文章      查看所有文章
加:2021-09-24 10:31:00  更:2021-09-24 10:31:32 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/15 15:42:27-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码