Ben Hunter wrote: > Hi, > > I'm completing the Python lessons on YouTube that Google posted. At the > end of section 2 of day 2, there is a task to identify files then put them > in a zip file in any directory. The code is from the 'solution' folder, so > it's not something I wrote. I suspect I have a problem with PATHS or > environment variables. I'm new to programming in something as advanced as > Python, but I do okay with VBA - so I just feel like there's a setting up > issue somewhere. I'm on Windows 7, tried running this in Idle and from the > command line.
The commands module used by zip_to() is an unfortunate choice for a tutorial because it is supposed to work with unix shells only. > def zip_to(paths, zipfile): > """Zip up all of the given files into a new zip file with the given > name.""" > cmd = 'zip -j ' + zipfile + ' ' + ' '.join(paths) > print "Command I'm going to do:" + cmd > (status, output) = commands.getstatusoutput(cmd) > # If command had a problem (status is non-zero), > # print its output to stderr and exit. > if status: > sys.stderr.write(output) > sys.exit(1) You can either try to install Cygwin to run your script unchanged or rewrite the above function to work with subprocess import sys from subprocess import Popen, PIPE def zip_to(paths, zipfile): command = ["zip", "-j", zipfile] command.extend(paths) process = Popen(command, stdout=PIPE, stderr=PIPE) stdoutdata, stderrdata = process.communicate() if process.returncode: sys.stdout.write(stdoutdata) sys.stderr.write(stderrdata) sys.exit(1) You'll still need a zip.exe on your system. If you're ambitious, have a look at http://docs.python.org/library/zipfile.html a library that allows you to create zipfiles in python without the help of an external program. _______________________________________________ Tutor maillist - Tutor@python.org To unsubscribe or change subscription options: http://mail.python.org/mailman/listinfo/tutor