Udacity somehow neglected to include the unit tests to check that the programming assignment in homework 1 works correctly, and instead indicated that one should visually check against their presentation in a video. That seemed tedious, so I transcribed the video into a unit test suite. I also added a few extra tests of my own:
Saturday, February 25, 2012
Friday, February 10, 2012
Awesome Google Python Workshop and Windows Issues
The Google Python Workshop is an awesome way to start learning Python, however some of the advanced exercises come a bit unstuck on windows, since certain standard *nix things like wildcards on the command line don't quite work as expected.
FOR %G IN ("baby*.html") DO "python" babynames.py --summaryfile "%G"
FOR %G IN ("*.summary") DO "findstr" Trinity "%G"
See http://ss64.com/nt/for2.html for more details on that syntax
There are also a couple of issues in the copyspecial exercise the windows zip program linked to on the site no longer being available (I got it wot work with 7zip)
http://www.7-zip.org/
See http://ss64.com/nt/for2.html for more details on that syntax
There are also a couple of issues in the copyspecial exercise the windows zip program linked to on the site no longer being available (I got it wot work with 7zip)
http://www.7-zip.org/
[note that you'll need to ensure 7z is on the path once you've downloaded it]
and then there is an issue that the commands.getstatusoutput call doesn't work on windows:
http://stackoverflow.com/questions/1193583/what-is-the-multiplatform-alternative-to-subprocess-getstatusoutput-older-comma
subprocess.Popen appears to be required on Python 2.7.2 on Windows, so the final code for this was:
There is also a discussion forum to address issues like these. At least the commands.getstatusoutput issue is mentioned there. However, it would be great if the original documentation could be updated to save a few more unfortunate windows users burning time on this when they want to be learning Python :-)
and then there is an issue that the commands.getstatusoutput call doesn't work on windows:
http://stackoverflow.com/questions/1193583/what-is-the-multiplatform-alternative-to-subprocess-getstatusoutput-older-comma
subprocess.Popen appears to be required on Python 2.7.2 on Windows, so the final code for this was:
def zip_to(path, zip):
#zip the file in path into "zip" the filename
command = '7z a ' + zip + ' ' + ' '.join(path)
print "Command I'm going to do:" + command
pipe = subprocess.Popen(command, stdout=subprocess.PIPE, shell=True, universal_newlines=True)
output = pipe.stdout.readlines()
sts = pipe.wait()
print sts
print output
There is also a discussion forum to address issues like these. At least the commands.getstatusoutput issue is mentioned there. However, it would be great if the original documentation could be updated to save a few more unfortunate windows users burning time on this when they want to be learning Python :-)
And for those searching by errors here are the three relevant to the above solutions:
babynames: IOError: [Errno 22] invalid mode ('rU') or filename: 'baby*.html'
copyspecial: '{' is not recognized as an internal or external command, operable program or batch file.
copyspecial: 'zip' is not recognized as an internal or external command, operable program or batch file
Subscribe to:
Posts (Atom)