Уведомления

Группа в Telegram: @pythonsu

#1 Янв. 15, 2017 19:39:46

ivn
Зарегистрирован: 2017-01-13
Сообщения: 91
Репутация: +  0  -
Профиль   Отправить e-mail  

Модуль для создания архива

4kpt_IV
 shutil.make_archive(path_dst, 'zip', path_src)
вываливает исключение:
Traceback (most recent call last):
File “c:\backup.py”, line 45, in copy_folder
shutil.make_archive(path_dst, ‘zip’, path_src)
File “C:\Users\Администратор\AppData\Local\Programs\Python\Python36\lib\shutil.py”, line 795, in make_archive
filename = func(base_name, base_dir, **kwargs)
File “C:\Users\Администратор\AppData\Local\Programs\Python\Python36\lib\shutil.py”, line 696, in _make_zipfile
zf.write(path, path)
File “C:\Users\Администратор\AppData\Local\Programs\Python\Python36\lib\zipfile.py”, line 1580, in write
zinfo = ZipInfo.from_file(filename, arcname)
File “C:\Users\Администратор\AppData\Local\Programs\Python\Python36\lib\zipfile.py”, line 494, in from_file
zinfo = cls(arcname, date_time)
File “C:\Users\Администратор\AppData\Local\Programs\Python\Python36\lib\zipfile.py”, line 338, in __init__
raise ValueError('ZIP does not support timestamps before 1980')
ValueError: ZIP does not support timestamps before 1980

я как понимаю shutil.make_archive использует модуль zipfile


Отредактировано ivn (Янв. 15, 2017 20:14:29)

Офлайн

#2 Янв. 15, 2017 20:21:12

4kpt_IV
Зарегистрирован: 2016-01-08
Сообщения: 999
Репутация: +  49  -
Профиль   Отправить e-mail  

Модуль для создания архива

Да. Верно.

Офлайн

#3 Янв. 15, 2017 20:40:28

ivn
Зарегистрирован: 2017-01-13
Сообщения: 91
Репутация: +  0  -
Профиль   Отправить e-mail  

Модуль для создания архива

немного кода из zipfile.py

 ...
        if date_time[0] < 1980:
            raise ValueError('ZIP does not support timestamps before 1980')
...
mtime = time.localtime(st.st_mtime)
date_time = mtime[0:6]
...

такой файл действительно есть (31.12.1979)

 # -*- coding: utf-8 -*-
import os
import time
DIR_OF_BACKUP = 'J:\\'
T = []
def read(DIR_OF_BACKUP, T):
    try:
        print('пошел процесс чтения атрибутов')
        for root, dirs, files in os.walk(DIR_OF_BACKUP):
            for file in files:
                path = os.path.join(root, file)
                print(path)
                date_of_files = time.localtime(os.stat(path).st_mtime)
                print(date_of_files[0])
                if date_of_files[0] < 1980:
                    print(path, '-' * 200)
                    T.append(str(path) + ' ' + str(date_of_files))
        return T
    except Exception as err:
        msg = 'чтение не удалось'
        print(msg)
        print(err)
read(DIR_OF_BACKUP, T)
if T:
    print(T)

возможно ли поменять дату изменения файла средствами python в среде windows?

Отредактировано ivn (Янв. 16, 2017 19:47:53)

Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version