""" ftp_url.py - RJM Programming - November 2017 Show some ftp functionality ... thanks to Python & XML by O'Reilly ISBN: 0-596-00128-2 and https://stackoverflow.com/questions/22676/how-do-i-download-a-file-over-http-using-python """ import sys import os.path from urllib import urlopen def main(argv): if len(sys.argv) == 6: if (sys.argv[4].rfind('.') == -1): print "Entry " + sys.argv[4][1:] + " is not a single file." fd=urlopen("ftp://" + sys.argv[2] + ":" + sys.argv[3] + "@" + sys.argv[1] + sys.argv[4]) else: if (os.path.exists(sys.argv[4][(1 + sys.argv[4].rfind('/')):])): #print "File " + sys.argv[4][(1 + sys.argv[4].rfind('/')):] + " already exists." fd=urlopen("ftp://" + sys.argv[2] + ":" + sys.argv[3] + "@" + sys.argv[1] + sys.argv[4]) else: fd=urlopen("ftp://" + sys.argv[2] + ":" + sys.argv[3] + "@" + sys.argv[1] + sys.argv[4]) with open(sys.argv[4][(1 + sys.argv[4].rfind('/')):],'wb') as output: output.write(fd.read()) print "Got " + sys.argv[4][(1 + sys.argv[4].rfind('/')):] + " from " + sys.argv[1] exit() else: if len(sys.argv) == 5: fd=urlopen("ftp://" + sys.argv[2] + ":" + sys.argv[3] + "@" + sys.argv[1] + sys.argv[4]) else: if len(sys.argv) == 4: fd=urlopen("ftp://" + sys.argv[2] + ":" + sys.argv[3] + "@" + sys.argv[1]) else: if len(sys.argv) == 3: fd=urlopen("ftp://mkuulma@ozemail.com.au:" + sys.argv[1] + "@ftp.ozemail.com.au" + sys.argv[2]) else: if len(sys.argv) == 2: fd=urlopen("ftp://mkuulma@ozemail.com.au:" + sys.argv[1] + "@ftp.ozemail.com.au") else: print "Usage is via ... python ftp_url.py [ftphost=ftp.ozemail.com.au] [ftpusername=mkuulma@ozemail.com.au] ftppassword [subpath=/] [download=]" exit() print fd.read() exit() if __name__ == "__main__": main(sys.argv[1:])