Files
detecttracking/events/evt_rename.py
2025-01-13 17:35:15 +08:00

111 lines
3.3 KiB
Python

# -*- coding: utf-8 -*-
"""
Created on Thu Jan 9 14:34:41 2025
@author: ym
"""
import os
def read_deletedBarcode_file(filePath):
with open(filePath, 'r', encoding='utf-8') as f:
lines = f.readlines()
split_flag, all_list = False, []
dict, barcode_list, similarity_list = {}, [], []
clean_lines = [line.strip().replace("'", '').replace('"', '') for line in lines]
for i, line in enumerate(clean_lines):
if line.endswith(','):
line = line[:-1]
stripped_line = line.strip()
if not stripped_line:
if len(barcode_list): dict['barcode'] = barcode_list
if len(similarity_list): dict['similarity'] = similarity_list
if len(dict): all_list.append(dict)
split_flag = False
dict, barcode_list, similarity_list = {}, [], []
continue
if line.find(':')<0: continue
label = line.split(':')[0]
value = line.split(':')[1]
if label == 'SeqDir':
dict['SeqDir'] = value
dict['filetype'] = "deletedBarcode"
if label == 'Deleted':
dict['Deleted'] = value
if label == 'List':
split_flag = True
continue
if split_flag:
barcode_list.append(label)
similarity_list.append(value)
if len(barcode_list): dict['barcode'] = barcode_list
if len(similarity_list): dict['similarity'] = similarity_list
if len(dict): all_list.append(dict)
return all_list
def event_rename(path):
for filename in os.listdir(path):
fpath = os.path.join(path, filename)
if os.path.isfile(fpath): continue
flist = filename.split("_")
if len(flist)==3 and flist[-1].isdigit() and len(flist[-1])>=8:
print(f"{path}: renamed!")
return
dpath = os.path.join(path, "deletedBarcode.txt")
alist = read_deletedBarcode_file(dpath)
input_events, getout_events = [], []
for filename in os.listdir(path):
fpath = os.path.join(path, filename)
if os.path.isfile(fpath): continue
flist = filename.split("_")
bcd = flist[-1]
if len(flist)==2 and flist[0].find("2024")==0 and len(bcd)==0:
bcds = [dt['Deleted'] for dt in alist if dt['SeqDir'].strip()==filename]
if len(bcds)==1:
getout_events.append((filename, filename + bcds[0].strip()))
if len(flist)==2 and flist[0].find("2024")==0 and len(bcd)>=10:
input_events.append((filename, filename + '_' + bcd))
events = (input_events, getout_events)
for evts in events:
for name_old, name_new in evts:
path_old = os.path.join(path, name_old)
path_new = os.path.join(path, name_new)
try:
os.rename(path_old, path_new)
except Exception as e:
print(f"发生错误:{e}")
def main():
path = r"\\192.168.1.28\share\测试视频数据以及日志\测试_202406\0910\images"
event_rename(path)
if __name__ == "__main__":
main()