python - 如何在 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')
解决方案
假设 ,image1.jpg
等image2.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'
如果根本没有图像,我设置newest
为image0.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
推荐阅读
- python - 在 cmake 中同时使用 PCL 和 Python 有什么问题?
- javascript - Stencil.js - 事件监听器的解释
- swiftui - SwiftUI - 从外部调用视图中的函数
- python - 为什么 Google Cloud Dataflow 无法扩展到启用自动缩放且没有配额限制的目标工作人员
- javascript - 设计一个无法看到文本的透明标题栏
- php - API平台自定义get操作
- javascript - 子组件更新时反应不重新渲染
- git - 如何确保我的 git 预提交脚本不会被愚弄?
- r - 如何从线性模型中提取系数而不在 R 中重复我的代码?
- javascript - Ember 输入类型数字只允许在 Decimal 后输入 2 位数字