On Sun, Apr 5, 2009 at 4:54 PM, Benjamin Serrato <benjamin.serr...@gmail.com> wrote: > Please tell me why this code fails. I am new and I don't understand why my > formatting of my zip arguments is incorrect. Since I am unsure how to > communicate best so I will show the code, the error message, and what I > believe is happening. > > #!c:\python30 > # Filename: backup_ver5.py > > import os > import time > > import zipfile > > > source = r'C:\Documents and Settings\Benjamin Serrato\My > Documents\python\backup_list' > > target_dir = r'C:\Documents and Settings\Benjamin Serrato\My > Documents\python\backup_dir' > > > today = target_dir + os.sep + time.strftime('%Y%m%d') > > now = time.strftime('%H%M%S') > > comment = input('Enter a comment --> ') > > if len(comment) == 0: > target = today + os.sep + now + '.zip' > > else: > target = today + os.sep + now + '_' + \ > comment.replace(' ', '_') + '.zip' > > if not os.path.exists(today): > os.mkdir(today) > print('Successfully created directory', today) > > > > print(target) > print(source) > zip_command = zipfile.ZipFile(target, 'w').write(source)
The argument to write() must be a file path, are you giving it a directory path? > > if os.system(zip_command) == 0: > print('Successful backup to', target) > else: > print('Backup FAILED') > > > I receive this error message: > File "c:\python30\lib\zipfile.py", line 1031, in write > fp = io.open(filename, "rb") > File "C:\Python30\lib\io.py", line 222, in open > closefd) > File "C:\Python30\lib\io.py", line 615, in __init__ > _fileio._FileIO.__init__(self, name, mode, closefd) > IOError: [Errno 13] Permission denied: 'C:\\Documents and Settings\\Benjamin > Ser > rato\\My Documents\\python\\backup_list' Notice that it is the write() call that is failing, not ZipFile(), and the error is a read error on target. > The two print tests before zip_command is assigned tell me that the two > strings are being passed to zipfile.ZipFile() correctly. The traceback tells > me I am not calling zipfile.ZipFile() correctly. The error in __init__ makes > me more sure of this. No, it is FileIO.__init__() that is failing, not ZipFile.__init__() > I used this site to figure out how to use zipfile. zipfile is a class, I > import it at the start of the program then I use it and its primary method. > I pass the file I would like to write to zipfile.ZipFile('file to write', > 'mode') and set the program to open an object set to be writable. Then the > command writes the file to the destination folder with a sub-method like so, > "".zipfile('files to write'). It should be zipfile('file to write') Kent _______________________________________________ Tutor maillist - Tutor@python.org http://mail.python.org/mailman/listinfo/tutor