@Lepilov

Как убрать лишние папки при создании архива?

При создании rar архива в Ubuntu файл архива в итоге содержит несколько подпапок, которые формируются из пути к файлу.

Что есть:
folder.rar
    /home
        /y700
            /projects
                file.xlsx


Что ожидается
folder.rar
    file.xlsx


Архив создаю так

new_file_name = self.generate_file_name()      # Генерация имени файла
       path_to_temp_folder = os.path.dirname(BASE_DIR)
       if not os.path.exists(f'{path_to_temp_folder}/files'):
            pathlib.Path(f'{path_to_temp_folder}/files').mkdir(parents=True, exist_ok=True) # Создаю папку
        wb.save(f'{path_to_temp_folder}/files/{new_file_name}')  # Сохраняю в нее эксель файл

        archive = self.generate_zip_name(rfi) # функция генерит имя архива (string)
        to_rar = f'{path_to_temp_folder}/files' # путь к папке с файлами

        os.system("rar a {} {}".format(archive, to_rar)) # Вызов линуксовой либы для создания архива


Как избавиться от лишних папок?
  • Вопрос задан
  • 74 просмотра
Пригласить эксперта
Ответы на вопрос 2
dimonchik2013
@dimonchik2013
Твой торт с каждым годом горит всё ярче
в os.system переходи сначала в папку поближе
Ответ написан
@Lepilov Автор вопроса
Не полностью но фиксанул , осталась только одна папка внутри архива
добавил _, to_rar = (os.path.split(to_rar))

В итоге
new_file_name = self.generate_file_name()      # Генерация имени файла
path_to_temp_folder = os.path.dirname(BASE_DIR)
if not os.path.exists(f'{path_to_temp_folder}/files'):
    pathlib.Path(f'{path_to_temp_folder}/files').mkdir(parents=True, exist_ok=True) # Создаю папку
wb.save(f'{path_to_temp_folder}/files/{new_file_name}')  # Сохраняю в нее эксель файл

archive = self.generate_zip_name(rfi) # функция генерит имя архива (string)

to_rar = f'{path_to_temp_folder}/files' # путь к папке с файлами
_, to_rar = (os.path.split(to_rar))  # Новая строка
os.system("rar a {} {}".format(archive, to_rar)) # Вызов линуксовой либы для создания архива


Результат
folder.rar
    folder
        file.xlsx


не совсем что нужно в идеале но уже гораздо лучше
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы
OnederX Москва
от 100 000 до 120 000 ₽
iCode Москва
от 90 000 до 200 000 ₽
SwapZilla.co Сочи
от 200 000 ₽
12 июл. 2020, в 19:31
2000 руб./за проект
12 июл. 2020, в 16:53
500 руб./за проект
12 июл. 2020, в 16:28
3000 руб./за проект