Как сопоставить файл в каталоге и переместить отдельно в другую папку с помощью Python?

#python #loops #directory #mapping #move

#питон #петли #каталог #отображение #двигаться

Вопрос:

Я хотел бы извлечь файл 7z, сначала я должен проверить, существует ли файл 7z или нет, выполнить извлечение, затем сопоставить конкретный файл в извлеченной папке, а затем переместить извлеченную папку на основе результата. Если файл, который я сопоставил, существует в папке, перейдите в допустимую папку, в противном случае перейдите в недопустимую папку. Я сделал некоторый код, но все еще есть проблема с перемещением недопустимой папки.

Вот что я сделал.

Это тот самый config.py

 RAW_DIR = "E:/data/raw" OUTPUT_DIR = "E:/data/output" RESULT_DIR = "E:/data/output/output" VALID_DIR = "E:/data/valid" INVALID_DIR = "E:/data/invalid"  RAW_IDENTIFIER = "E:/data/raw/*_zipfile.7z" VALID_IDENTIFIER = "/system/result/processing.log"  

Это то main.py

 import time import glob import shutil import os.path import config as cfg from pyunpack import Archive  # Extract for i, f in enumerate(glob.glob(os.path.join(cfg.RAW_DIR, cfg.RAW_IDENTIFIER))):  timestamp = time.strftime("%Y%m%d%H%M%S")  output_path = cfg.RESULT_DIR   str(i)   "_"   timestamp  os.mkdir(output_path)  Archive(f).extractall(output_path)   # Mapping  for folder in enumerate(glob.glob(output_path   cfg.VALID_IDENTIFIER)):  shutil.move(output_path, cfg.VALID_DIR)  file = glob.glob(cfg.OUTPUT_DIR   "/output*")  file_name = os.path.basename(file)  shutil.move(file_name, cfg.INVALID_DIR)  

Кто-нибудь может мне помочь, пожалуйста. Большое спасибо

Комментарии:

1. Чтобы извлечь файл .7z, вам потребуется использовать стороннюю библиотеку. StackOverflow-это не то место, где можно запрашивать рекомендации для библиотек, но быстрый поиск в Google покажет несколько.

2. @Grismar Я думаю, что автор не просит какой-либо третьей части библиотеки, а скорее о способе копирования файла из одного каталога в другой

3. Ах , я не заметил, что вы уже использовали pyunpack — вы уже shutil.move(file_name, cfg.INVALID_DIR) использовали, но в вашем коде, похоже, есть некоторые другие ошибки — в чем именно заключается ваш вопрос здесь?