File: class/Workbook/Exercises/Lab10/sousa_fetch.py
#!/usr/local/bin/python
###############################################
# Usage: % python sousa_fetch.py
# Fetch (only) the Monty Python theme song.
# This only fetches and saves the audio file,
# so it works anywhere you have an Internet
# connection. I've even used it from a DOS
# box command line on Windows98, by dialing
# in to an ISP via modem--it automatically
# dials out if necessary; arguably amazing.
# On Windows, you may be able to pass the
# filename on a browser command line instead
# of piping it in to stdin; attempted here
# for windows, but this scheme is portable.
###############################################
import os, sys
from ftplib import FTP # socket-based ftp tools
from posixpath import exists # file existence test
sample = 'sousa.au'
# ftp the audio file
if exists(sample):
print sample, 'already fetched'
else:
print 'Downloading.'
theme = open(sample, 'w')
ftp = FTP('ftp.python.org') # connect to ftp site
ftp.login() # use anonymous login
ftp.cwd('pub/python/misc')
ftp.retrbinary('RETR ' + sample, theme.write, 1024)
ftp.quit()
theme.close()
print 'Done.'
if sys.platform[:3] == 'win':
cwd = os.getcwd()
brw = r'c:\"Program Files"\Netscape\Communicator\Program\netscape.exe'
os.system('%s file://%s/%s' % (brw, cwd, sample))