Я искал форум для такого рода ошибок, но не смог найти его, поэтому я создаю для него новый поток. Я архивирую однолетние файлы с ниже сценария python.AttributeError: объект 'TarFile' не имеет атрибута 'endswith'
import os, time, tarfile
path = "/home/appins/.scripts/test/"
now = time.time()
yearago = now - 60*60*24*665
tar_file = "nas_archive_"+time.strftime("%m-%d-%Y")+".tgz"
tar = tarfile.open(tar_file,"w:gz")
for root, subFolders, files in os.walk(path):
for file in files:
file = os.path.join(root,file)
file = os.path.join(path, file)
filecreation = os.path.getctime(file)
if filecreation > yearago:
tar.add(file)
print file," is older that one year"
os.remove(file)
Он отлично работает и я могу просматривать его содержимое через. Теперь, когда я пытаюсь восстановить архивные файлы и получить ошибку AttributeError: объект «TarFile» не имеет атрибута «endswith».
Мой сценарий восстановления прост:
import os, tarfile
archive_file = "nas_archive_07-31-2013.tgz"
tar = tarfile.open("nas_archive_07-31-2013.tgz")
tar.extractall(tar)
tar.close()
Когда я запускаю этот скрипт я получаю ниже ошибки:
python restore_archive.py
Traceback (most recent call last):
File "restore_archive.py", line 8, in ?
tar.extractall(tar)
File "/usr/lib64/python2.4/tarfile.py", line 1541, in extractall
self.extract(tarinfo, path)
File "/usr/lib64/python2.4/tarfile.py", line 1578, in extract
self._extract_member(tarinfo, os.path.join(path, tarinfo.name))
File "/usr/lib64/python2.4/posixpath.py", line 62, in join
elif path == '' or path.endswith('/'):
AttributeError: 'TarFile' object has no attribute 'endswith'
Есть что-нибудь, который я делаю неправильно в добыче? Я могу извлечь файлы, используя команду tar -xzvf.
Спасибо за указание ошибки. Это была ошибка. – user2501825