ftpにファイルをアップロードする

pythonftpにファイルをアップロードするスクリプトをつくってみたので公開します。
いつもはlinuxで暮らしているので、scpで事足りているのですが、windowsで使いたいという要望を受け、書き起こしたものです。

"FTP Information" から下の部分に接続先の情報を入れてください。
"target dir Information"の下の部分は、転送したいファイル。

複数のファイルを入れることもできます。
一応、日本語ファイルでも行けます。

2010/10/31 追記 
転送ファイルがひとつだった場合、転送が行われないバグがあります。
修正版は手があいたときに・・・。

2010/11/01 追記

修正いれておきました。

今更気がついたんですが、この方法だとブロックがめちゃくちゃですね・・・。
このまま貼りつけてもエラーになるはずです。
def,if,forのあたりにブロックいれれば動きますが・・・
方法検討します。 -> 入力したコードやはてな記法をそのまま表示する(スーパーpre記法)

#-------------------------------------------------------------------------------
# Name:        putftp
# Purpose:
#
# Author:      earth
#
# Created:     28/10/2010
# Copyright:   (c) earth 2010
#-------------------------------------------------------------------------------
#!/usr/bin/env python
# -*- coding: UTF-8 -*-

import sys
import md5
import os
import glob
from ftplib import FTP
from urllib import urlopen

####################################
#FTP Information
####################################
ftp_serveraddress="ftp.example.jp"
ftp_serverport="21"
ftp_user='username'
ftp_password='password'
ftp_putdir="/targetdir/"
###################################
#target dir Information
src_dir="C:/*.txt"
####################################


def putftp(uploadlist):

    ftp=FTP(ftp_serveraddress)
    ftp.login(ftp_user,ftp_password)

    ftp.cwd(ftp_putdir)


    if isinstance(uploadlist, list):
        for file in uploadlist:
            f=open(file,'rb')
            filename=os.path.basename(unicode(file,"mbcs"))
            command='STOR '+filename.encode("mbcs")
            print command
            ftp.storbinary(command,f)
            f.close()
    else:
        f=open(uploadlist,'rb')
        filename=os.path.basename(uploadlist)
        command='STOR '+filename.encode("mbcs")
        print command
        ftp.storbinary(command,f)
        f.close()
    ftp.quit()
</span>


def main():
    filelist=glob.glob(src_dir)

    putftp(filelist)

if __name__ == '__main__':
    main()