我有一个带有网络摄像头图像的目录,这些图像不断递增。我想使用python脚本来获取最新的10个图像。目前我有以下代码来获取最新的图像。我想减少文件名并获取最新的10张图像,并将它们命名为image_current1.jpg至image_current10.jpg。
import os
import glob
from PIL import Image
from shutil import copyfile
# variables
rawFileDir = 'C:\pictures\image00*.jpg'
mriFileName = 'C:\pictures\image_current1.jpg'
# obtain and copy most recent image
mostRecentImage = max(glob.iglob(rawFileDir), key=os.path.getctime)
copyfile(mostRecentImage,mriFileName)
答案 0 :(得分:1)
您可以使用glob.iglob(rawFileDir)
中的排序列表:
import os
import glob
from PIL import Image
from shutil import copyfile
# variables
rawFileDir = 'E:\Test\image00*.jpg'
mriFileName = 'E:\Test\image_current'
# obtain and copy most recent image
mostRecentImage = sorted(glob.iglob(rawFileDir), key=os.path.getctime)
for num, i in enumerate(mostRecentImage[:~10:-1]):
exec('copyfile(i, mriFileName + str({}) + ".jpg")'.format(num + 1))
image_current1.jpg
将是最新的文件。
答案 1 :(得分:0)
这将提供所需文件名(例如image_current01.jpg)和目标文件的字典。
{'image_current' + str(n).zfill(1): filename
for n, filename in enumerate(sorted((os.path.getctime(f), f)
for f in glob.glob('*.jpg'))[-10::][::-1])}