226:FTPクライアントを作る
ftplib を使います。
http://pleac.sourceforge.net/pleac_python/internetservices.html
import ftplib
ftp = ftplib.FTP("ftp.host.com")
ftp.login(username, password)
ftp.cwd(directory)
# get file
outfile = open(filename, "wb")
ftp.retrbinary("RETR %s" % filename, outfile.write)
outfile.close()
# upload file
upfile = open(upfilename, "rb")
ftp.storbinary("STOR %s" % upfilename, upfile)
upfile.close()
ftp.quit()
FTPのポートは標準で21となっています。8021で接続するには次のような方法を取ります。
ftp = ftplib.FTP() ftp.connect(server,8021)
ローカルのディレクトリにあるテキストファイル(拡張子txt)をFTPサーバにコピーするプログラム。 この例ではファイルをバイナリモードで転送しています。このためローカルのファイルを開くときはバイナリモードで開いておく方がよいでしょう。 テキストファイルを送るときは問題ないのですが、バイナリファイルをテキストモードで開いてしまうと当然のことながら正しく動作しません。
import glob
import os
from ftplib import FTP
from urllib import urlopen
path=os.getcwd()
txtdir=os.path.join(path,'txt')
filelist=glob.glob(txtdir+'/*.txt')
ftp=FTP('192.168.11.2')
ftp.login('seko','password')
ftp.cwd('/home/seko/data/txt/')
dstlist= ftp.nlst()
for file in dstlist:
ftp.delete(file)
print file + ' is deleted'
for file in filelist:
f=open(file,'rb')
filename=os.path.basename(file)
cmd='STOR '+filename
print cmd
ftp.storbinary(cmd,f)
f.close()
ftp.quit()