我用Python和Django制作了一个在线画廊。我刚刚开始添加编辑功能,从一个旋转开始。我使用sorl.thumbnail根据需要自动生成缩略图。
当我编辑原始文件时,我需要清理所有缩略图,以便生成新的缩略图。每张图片有三到四张(我在不同的场合有不同的)。
我可以在文件变量中使用硬代码。。。但这很混乱,如果我改变我做事的方式,我需要重新访问代码。
理想情况下,我想做一个regex删除。在regex术语中,我所有的原件都是这样命名的:
^(?P<photo_id>\d+)\.jpg$
所以我想删除:
^(?P<photo_id>\d+)[^\d].*jpg$
(在这里,我将photo_id
替换为要清除的ID。)
如果需要递归到多个子目录中,可以使用以下方法:
您可以安全地从
dirs
中动态删除子目录,其中包含要在每个节点上访问的子目录列表。请注意,如果您在目录中,还可以使用
glob.glob(pattern)
获取与简单模式表达式对应的文件。在这种情况下,您必须将文件集从整个集合中减去,这样上面的代码更有效。试试这样的:
然后您将传递包含文件的目录和希望匹配的模式。
glob方法的一个变体,将与Python 3一起使用:
编辑:在Python3.4+中,您可能需要使用pathlib:
相关问题 更多 >
编程相关推荐