ftplibを使う
今日、都合によりrcpが通らないサーバがあり、サーバ管理者にも手が届かないので、pythonとftpで何とかすることにした。
最初は、ライブラリリファレンスを見ながら、対話モードでftplibを使う。
比較的簡単にFTPを動かせた。
ファイルの取得もドキュメントどおり、
再帰的にファイルを取得するための関数を書く
こんな感じだったかな?記憶だけで書いているので間違っている気もする。
最初は、ライブラリリファレンスを見ながら、対話モードでftplibを使う。
>>> from ftplib impot FTP
>>> ftp=FTP('xx.xx.xx.xx')
>>> ftp.login(user,password)
>>> ftp.dir()
-rw-rw-rw- ..............
.............................................
比較的簡単にFTPを動かせた。
ファイルの取得もドキュメントどおり、
>>> ftp.retrbinary('RETR README', open('README', 'wb').write)
'226 Transfer complete.'
>>> ftp.quit()
再帰的にファイルを取得するための関数を書く
>>> def rnlst(ftp, base_dir, sub_dir='.'):
... ret = []
... items = []
... ftp.dir( '%s/%s' % (base_dir,sub_dir), items.append)
... for i in items:
... if i[0] != '-' and i[0] != 'd': continue
... item = (i[0], '%s/%s' % (sub_dir,i.split()[-1]))
... if i[0] == '-':
... ret.append(item)
... else:
... sub = rnlst(ftp, base_dir, '%s/%s' % (sub_dir,item[1]) )
... if len(sub) > 0:
... ret.append(item)
... ret += sub
... return ret
こんな感じだったかな?記憶だけで書いているので間違っている気もする。