|
|
@@ -1,4 +1,4 @@
|
|
|
-import os
|
|
|
+import os,re
|
|
|
|
|
|
from natsort import natsorted,ns
|
|
|
import shutil
|
|
|
@@ -30,8 +30,10 @@ class DealImage(BaseDealImage):
|
|
|
return True
|
|
|
def list_dir(self, path):
|
|
|
listdir = os.listdir(path)
|
|
|
- return natsorted(listdir, alg=ns.PATH)
|
|
|
-
|
|
|
+ sort_result = sorted(listdir, key=lambda x: int(re.findall(r'^(\d+)_', x)[0]) if re.findall(r'^(\d+)_', x) else 0)
|
|
|
+ print("listdir 排序排序排序排序排序排序", sort_result)
|
|
|
+ # return natsorted(listdir, alg=ns.PATH)
|
|
|
+ return sort_result
|
|
|
def get_date_time_original(self, file_path):
|
|
|
with open(file_path, 'rb') as file_data:
|
|
|
tags = exifread.process_file(file_data)
|
|
|
@@ -181,7 +183,7 @@ class DealImage(BaseDealImage):
|
|
|
# 遍历目标文件夹,获取有拍摄信息的图片,并按拍摄时间排序
|
|
|
files = self.list_dir(image_dir)
|
|
|
original_photo_list = [] # 原始图片列表
|
|
|
- for file in files:
|
|
|
+ for file_idx,file in enumerate(files):
|
|
|
# -----图片清洗
|
|
|
file_path = image_dir + "/" + file
|
|
|
if os.path.isdir(file_path): # 忽略文件夹
|
|
|
@@ -198,12 +200,12 @@ class DealImage(BaseDealImage):
|
|
|
if _data:
|
|
|
# 能匹配上数据库
|
|
|
goods_art_no, image_index, image_deal_mode = _data
|
|
|
- print("832 与数据库匹配goods_art_no", file_name, date_time_original, goods_art_no)
|
|
|
+ print("832 与数据库匹配goods_art_no", file_path,file_name, date_time_original, goods_art_no)
|
|
|
original_photo_list.append({"file_path": file_path,
|
|
|
"file": file,
|
|
|
"date_time_original": date_time_original,
|
|
|
"goods_art_no": goods_art_no,
|
|
|
- "image_index": image_index,
|
|
|
+ "image_index": file_idx,
|
|
|
"real_goods_art_no": "",
|
|
|
"real_goods_number": "",
|
|
|
})
|
|
|
@@ -221,8 +223,8 @@ class DealImage(BaseDealImage):
|
|
|
raise UnicornException("没有任何匹配的图片")
|
|
|
return False, "没有任何匹配的图片"
|
|
|
# 排序需要基于拍照的文件序号进行处理
|
|
|
- original_photo_list.sort(
|
|
|
- key=lambda x: "{}-{}-{}".format(x["goods_art_no"], x["image_index"], x["file"]))
|
|
|
+ # original_photo_list.sort(
|
|
|
+ # key=lambda x: "{}-{}-{}".format(x["goods_art_no"], x["image_index"], x["file"]))
|
|
|
|
|
|
# print(original_photo_list)
|
|
|
# 对有拍摄信息的图片进行数据库比对,如有比对上,则移动至货号文件夹,否则移入历史文件夹
|
|
|
@@ -232,9 +234,11 @@ class DealImage(BaseDealImage):
|
|
|
output_path = "output/{f_name}".format(f_name=time.strftime("%Y-%m-%d", time.localtime(seconds)))
|
|
|
|
|
|
# 遍历每个匹配好的数据进行处理
|
|
|
+ print(f"original_photo_list:",original_photo_list)
|
|
|
n = 0
|
|
|
for photo_dict in original_photo_list:
|
|
|
n += 1
|
|
|
+ print("处理dict:",photo_dict)
|
|
|
# 进度条
|
|
|
goods_art_no = photo_dict["goods_art_no"]
|
|
|
original_image_path = photo_dict["file_path"]
|