Robert Kern wrote:
probably something like this: (untested)
def make_ftplib_callback(f):
def callback(block): f.write(block)
return callback
img = cStringIO.StringIO()
retrbinary( "get ???", make_ftplib_callback(img))
Ummm, how about
img = cStringIO.StringIO()
retrbinary("get ???", img.write)
if you want some additional code to run during download, you can
always do something like:
img = cStringIO.StringIO()
def callback(block):
sys.stdout.write(".")
img.write(block)
if img.tell() > LIMIT:
raise IOError("too much data")
retrbinary(..., callback())
(you don't really have to create a factory if all you need is a single
function...)
you can also get rid of the cStringIO module :
img = []
retrbinary(..., img.append)
# img is now a list of string chunks
might be more efficient, depending on what you plan to do with the
data once you've loaded it.
and finally,
img = urllib.urlopen("ftp://...").read()
might also work.
</F>