6 / 6 / 1
Регистрация: 04.02.2017
Сообщений: 162
1

Не могу разобраться в коде

14.11.2019, 22:32. Показов 706. Ответов 1
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
import os
import time
import zipfile
 
# 1. Файлы и каталоги, которые необходимо скопировать, собираются в список.
source = ['/home/akm/Загрузки', '/home/akm/Изображения/Wallpapers/artleo.com-181995.jpg']
# 2. Резервные копии должны храниться в основном каталоге резерва.
target_dir = '/home/akm/Backup'  # Подставьте тот путь, который вы будете использовать.
# 3. Файлы помещаются в zip-архив.
# 4. Текущая дата служит именем подкаталога в основном каталоге
today = target_dir + os.sep + time.strftime('%Y%m%d')
# Текущее время служит именем zip-архива
now = time.strftime('%H%M%S')
# Запрашиваем комментарий пользователя для имени файла
comment = input('Введите комментарий --> ')
if len(comment) == 0:  # проверяем, введён ли комментарий
    target = today + os.sep + now + '.zip'
else:
    target = today + os.sep + comment + '_' + now + '.zip' 
# Создаём каталог, если его ещё нет
if not os.path.exists(today):
    os.mkdir(today)  # создание каталога
print('Каталог успешно создан', today)
 
archive = zipfile.ZipFile(target, 'w')
for path in source:
    for root, dirs, files in os.walk(path):  # получаем адрес каталога и имена подкатологов и файлов
        for filename in files:
            archive.write(os.path.join(root, filename))  # пишем файлы в архив
archive.close()


Программа не архивирует второй каталог списка sourse ['/home/akm/Изображения/Wallpapers/artleo.com-181995.jpg']
Не могу понять,как работает os.walk
Можно ли как то получить адрес каталога и имена подкаталога и файлов по проще и записать фалы в архив.

Добавлено через 29 минут
Python
1
2
3
4
os.chdir('/home/akm/Загрузки')
archive = zipfile.ZipFile(target, 'w')
archive.write(target, compress_type=zipfile.ZIP_DEFLATED)  # пишем файлы в архив
archive.close()

Не проще так будет создать код? И опять же не могу добавить 2 католог
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
14.11.2019, 22:32
Ответы с готовыми решениями:

Не могу разобраться в коде, подскажите что делаю не так
Доброго времени суток, помогите разобраться товарищи всю голову сломал. Только начал писать на...

Ошибка в коде, не могу разобраться
g = int(input()) while g != 1: if g % 2 == 0: g = g/2 else: g =...

Новичок в Python, не могу разобраться в коде на бота прогноза погоды
Решил создать бота в телеграмме с прогнозом погоды , сам я еще не умею поэтому взял код с...

Не могу разобраться в коде
using System; using System.Collections.Generic; using System.Linq; using System.Text; ...

1
6 / 6 / 1
Регистрация: 04.02.2017
Сообщений: 162
16.11.2019, 21:07  [ТС] 2
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
import os
import time
import zipfile
 
# 1. Файлы и каталоги, которые необходимо скопировать, собираются в список.
source = ['/home/akm/Загрузки', '/home/akm/Изображения/Wallpapers/artleo.com-181995.jpg']
# 2. Резервные копии должны храниться в основном каталоге резерва.
target_dir = '/home/akm/Backup'  # Подставьте тот путь, который вы будете использовать.
# 3. Файлы помещаются в zip-архив.
# 4. Текущая дата служит именем подкаталога в основном каталоге
today = target_dir + os.sep + time.strftime('%Y%m%d')
# Текущее время служит именем zip-архива
now = time.strftime('%H%M%S')
# Запрашиваем комментарий пользователя для имени файла
comment = input('Введите комментарий --> ')
if len(comment) == 0:  # проверяем, введён ли комментарий
    target = today + os.sep + now + '.zip'
else:
    target = today + os.sep + comment + '_' + now + '.zip'  # .replace(old, new[, max])
# old – это старая подстрока, которая будет заменена.
# new – это новая подстрока, которая заменит старую подстроку.
# max – это дополнительный аргумент, заменяется только первые max вхождений.
 
# Создаём каталог, если его ещё нет
if not os.path.exists(today):
    os.mkdir(today)  # создание каталога
print('Каталог успешно создан', today)
 
archive = zipfile.ZipFile(target, 'w')
 
for path in source:  # если path содержит расширение .jpg — то помещаем файл в архив
    if '.jpg' in path:
        archive.write(path)
    for root, dirs, files in os.walk(path):
        for filename in files:
            archive.write(os.path.join(root, filename))
archive.close()
Добавлено через 43 секунды
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
import os
import time
import zipfile
 
# 1. Файлы и каталоги, которые необходимо скопировать, собираются в список.
source = ['/home/akm/Загрузки', '/home/akm/Изображения/Wallpapers/artleo.com-181995.jpg']
# 2. Резервные копии должны храниться в основном каталоге резерва.
target_dir = '/home/akm/Backup'  # Подставьте тот путь, который вы будете использовать.
# 3. Файлы помещаются в zip-архив.
# 4. Текущая дата служит именем подкаталога в основном каталоге
today = target_dir + os.sep + time.strftime('%Y%m%d')
# Текущее время служит именем zip-архива
now = time.strftime('%H%M%S')
# Запрашиваем комментарий пользователя для имени файла
comment = input('Введите комментарий --> ')
if len(comment) == 0:  # проверяем, введён ли комментарий
    target = today + os.sep + now + '.zip'
else:
    target = today + os.sep + comment + '_' + now + '.zip'  # .replace(old, new[, max])
# old – это старая подстрока, которая будет заменена.
# new – это новая подстрока, которая заменит старую подстроку.
# max – это дополнительный аргумент, заменяется только первые max вхождений.
 
# Создаём каталог, если его ещё нет
if not os.path.exists(today):
    os.mkdir(today)  # создание каталога
print('Каталог успешно создан', today)
 
archive = zipfile.ZipFile(target, 'w')
 
extensions = ['jpg', 'png', 'txt', 'py']  # список нужных типов файлов
 
for path in source:
    # проходим в цикле по списку типов
    for ext in extensions:
        # если расширение файла содержит в пути
        if ext in path:
            # добавляем файл в архив
            archive.write(path)
    for root, dirs, files in os.walk(path):
        for filename in files:
            archive.write(os.path.join(root, filename))
archive.close()
Добавлено через 26 секунд
Спасибо всем кто ответил

Добавлено через 2 минуты
Проблема была в самом цикле For. Файл не архивируется, потому что не содержит внутри файлов (в цикле по нему нечего перебирать) Спасибо stud_55@mail.ru (https://python-scripts.com)
0
16.11.2019, 21:07
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
16.11.2019, 21:07
Помогаю со студенческими работами здесь

Не могу разобраться в коде
Есть код, который я запустил, но не могу понять как он работает, и поэтому не могу его...

Не могу разобраться в коде
Доброго времени суток форумчане! Проблема следующая: Пытаюсь сделать плашку на сайте, которая будет...

не могу разобраться в коде
<?php include(db_connect.php); $name = $_POST; $pass = $_POST; $email = $_POST;

Не могу разобраться в коде
Всем дня доброго.В плюсах я ровным счетом 0.Расшифровать по нормальному не могу.Отрывок из кода...

Не могу разобраться в коде
Function Okryjenie(x,y,T:integer):integer; var i,j,s:integer; Begin for i:=0 to 3 do begin...

Не могу разобраться в коде. )
var ans=0; if(document.registration.v1.checked==true)ans++; ...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru