You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
74 lines
2.2 KiB
74 lines
2.2 KiB
import os.path |
|
from log import logger |
|
import unzip |
|
import file |
|
import db |
|
|
|
root_path = r'F:\Temp\sjry\hj' |
|
|
|
# 初始化数据库 |
|
db_obj = db.DbAction() |
|
file_obj = file.Files(root_path) |
|
unzip_obj = unzip.UnzipFile() |
|
|
|
|
|
# 开始任务 |
|
def start_unzip_task(): |
|
result = True |
|
for folder in file_obj.get_root_folder_list(): |
|
all_file = file_obj.get_all_files(os.path.join(root_path, folder)) # 获取文件夹下的全部文件的原始数据 |
|
all_file = file_obj.cate_files(all_file) # 整理文件返回整理后的结果 |
|
print(all_file) |
|
|
|
# 从数据库中获取数据 |
|
data = db_obj.get_data_by_id(folder) |
|
|
|
if data: |
|
# 解压 |
|
if all_file['handle_zip'] and unzip_obj.unzip(all_file['handle_zip'][0], data['unzip_pwd']): |
|
file_obj.del_all_files(all_file['zip']) |
|
|
|
# 打印未知文件 |
|
if all_file['unknown']: |
|
logger.info("打印没有处理的文件扩展名:") |
|
logger.info(', '.join(all_file['unknown'])) |
|
result = False |
|
|
|
# 检查打印结果 |
|
if not (all_file['handle_zip'] and all_file['zip'] and all_file['unknown']): |
|
logger.info('全部文件已解压') |
|
return result |
|
|
|
|
|
# 整理文件夹 |
|
def start_collation_task(): |
|
for folder in file_obj.get_root_folder_list(): |
|
if db_obj.get_data_by_id(folder): |
|
folder_path = os.path.join(root_path, folder) |
|
# 清除多余的文件 |
|
file_obj.clear_files(folder_path) |
|
# 整理无效文件夹 |
|
file_obj.move_files(folder_path) |
|
# 删除空文件夹 |
|
file_obj.remove_empty(folder_path) |
|
# 从数据库中获取数据 |
|
data = db_obj.get_data_by_id(folder) |
|
# 重命名文件夹 |
|
name = data['name'] |
|
file_obj.rename_root_folder(root_path, name, folder_path, os.path.join(root_path, name)) |
|
|
|
|
|
def main(): |
|
n = 5 |
|
unzip_result = False |
|
while n > 0: |
|
unzip_result = start_unzip_task() |
|
if unzip_result: |
|
break |
|
n -= 1 |
|
if unzip_result: |
|
start_collation_task() |
|
|
|
|
|
if __name__ == '__main__': |
|
main()
|
|
|