Python批量删除Django不需要的图片标签
当你批量生产文章图片时,你会面临这样的情况。文章生成后发现有重复,或者由于远程原因未能发布,导致我们的图片变得多余。所以我们要分组删除这些图像。
这些照片都是随机命名的,有上万张。如果手动完成的话会比较繁琐,所以我们需要代码来处理下面的代码
views.py
def getimg(request):
print('link_article=========>',request.GET)
try:
start=int(request.GET['start'])
end=int(request.GET['end'])
except:
return JsonResponse({'status':400,'msg':'“start”和“end”获取失败'},safe=False,json_dumps_params={'ensure_ascii': False})
if start<=end:
obj=models.Article.objects.filter(id__gte=start,id__lte=end).order_by('id')
elif start>end:
return JsonResponse({'status':400,'msg':'“start”不能小于“end'},json_dumps_params={'ensure_ascii': False})
img_all=[]
for item in obj:
img_list=re.findall('<img[^>]*]*?)"',item.Content)
if img_list:
for img in img_list:
img_all.append(img)
with open('allimg.text','w') as f1:
pass
for i in img_all:
with open('allimg.text','a') as f1:
f1.write(str(i)+'\n')
return JsonResponse({'status':200})
api/urls.py
from django.urls import path
from article import views as article
urlpatterns = [
...
path('getimg',article.getimg),
]
然后我们直接访问api:/api/getimg?start = 3318&end =5442
这样,在django程序下,如果我们使用soogorcms,就会在soogor文件下生成一个名为allimg.text的文件
这里是所有的图片名称
然后我们处理python
text.py
import os
alllins=[]
with open(r'C:\Users\Administrator\Desktop\allimg.txt','r') as f1:
alllins=f1.readlines()
path=r'I:\采集\第一个库_东西很多\soogormedia\media\soogorfac'
for root,dirs,files in os.walk(path,topdown=True):
for name in files:
print(name,end='==>')
if name not in str(alllins):
print('False')
delpath=os.path.join(path,name)
os.remove(delpath)
print('\n')
版权声明
本文仅代表作者观点,不代表Code前端网立场。
本文系作者Code前端网发表,如需转载,请注明页面地址。
发表评论:
◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。