首页 > 解决方案 > 如何在 Python 中更改图像的名称

问题描述

目前我在树莓上使用 python。我的目标是,覆盆子从 PiCamera 拍摄的图片应该以不同的名称保存在桌面上。示例:它拍摄照片并将其保存为 image1。下一张图片应该像 image2 一样安全(不使用连续拍摄 5 张照片的循环。

这是我目前使用的代码:

import time                                                             
from picamera import PiCamera                                           


cam = PiCamera()                                                         
fname = (time.strftime("%Y-%b-%d_%H:%M:%S"))                            

cam.resolution = (1920, 1080)                                           
cam.framerate = 30                                                  

cam.capture('/home/pi/Desktop/image' + str(fname) +'.jpg')      

标签: pythonraspberry-pi

解决方案


假设 ,image1.jpgimage2.jpg完全image3.jpg按此顺序创建,您可以通过以下方式获得最新名称(即具有最大编号):

import os
os.chdir('/home/pi/Desktop/image')
images = [i for i in os.listdir(os.getcwd()) if i.lower().startswith('image')]
if images:
    newest = max(images,key=os.path.getmtime)
else:
    newest = 'image0.jpg'

如果根本没有图像,我设置newestimage0.jpg字符串(但是我不创建这样的文件)。然后我们需要从该名称中提取数字,例如可以通过以下方式完成:

number = int(''.join([i for i in newest if i.isdigit()]))

上一行假定所有image名称都是正确的并遵循模式:数字image_.jpg在哪里_。最后,我们可以为新图像创建名称:

newimagen = 'image'+str(number+1)+'.jpg'

现在你可以在你的capture方法参数中使用它:

'/home/pi/Desktop/'+newimagen

推荐阅读