Transport.send(msg);
此代码将重命名文件夹中以0.jpg,1.jpg等开头的所有图像,并且不删除任何jpg,但是如果我在该文件夹中已经有一些图像,那么假设我有图像0.jpg ,1.jpg,2.jpg,然后我添加了其他几个,分别称为im5.jpg和someImage.jpg。
我想做的是调整代码以读取最后一个图像编号的值,在这种情况下为2,然后从3开始计数。 换句话说,我将忽略已标记的图像,并继续从3开始计数。
答案 0 :(得分:0)
Terse和半测试版:
import os
import glob
offset = sorted(int(os.path.splitext(os.path.basename(filename))[0])
for filename in glob.glob(os.path.join(src, '*' + ext)))[-1] + 1
for i, filename in enumerate(os.listdir(src), start=offset):
...
提供的所有* .jpg文件在其扩展名前均包含一个 only 数字。否则,您会得到ValueError
。
如果编号之间恰好有间隔,则该间隔将不会填充新文件。例如1.jpg,2.jpg,3.jpg,123.jpg会继续显示124.jpg(无论如何还是比较安全)。
如果您需要过滤掉诸如im5.jpg或someImage.jpg之类的文件名,则可以使用正则表达式将if子句添加到列表推导中:
import os
import glob
import re
offset = sorted(int(os.path.splitext(os.path.basename(filename))[0])
for filename in glob.glob(os.path.join(src, '*' + ext))
if re.search('\d+' + ext, filename))[-1] + 1
当然,到目前为止,这三行代码还是不可读的,可能无法赢得代码选美大赛。