johnny wrote: > I have a module called ftp and I have another module called > processKick. What I need is to have processKick, create fork and > execute ftp like below. > > Relevant processKick code as follows: > > def do_child_stuff(): > ftp > > def fork_test(): > pid = os.fork() > if pid == 0: > # child > do_child_stuff() > os._exit(0) > # parent - wait for child to finish > os.waitpid(pid, os.P_WAIT) >
Here is my ftp module: import ftplib, posixpath, threading from TaskQueue import TaskQueue def worker(tq): while True: host, e = tq.get() c = ftplib.FTP(host) c.connect() try: c.login() p = posixpath.basename(e) fp = open('H:/ftp_download/' + p, 'wb') try: c.retrbinary('RETR %s' % e, fp.write) finally: fp.close() finally: c.close() tq.task_done() if __name__ == '__main__': q = TaskQueue() #host = 'ftp.microsoft.com' host = 'mysite.com' c = ftplib.FTP(host) c.connect() try: #c.login() c.login() #folder = '/deskapps/kids/' folder = '' for n in c.nlst(folder): if n.lower().endswith('.doc'): q.put((host, n)) finally: c.close() numworkers = 4 for i in range(numworkers): t = threading.Thread(target=worker, args=(q,)) t.setDaemon(True) t.start() q.join() print 'Done.' Can someone also tell me what is the purpose of if __name__ == "__main__": Do I have to call, main of ftp module within processKick? Thank you in advance -- http://mail.python.org/mailman/listinfo/python-list