# -*- coding: utf-8 -*-
#!/usr/bin/python
# Filename: ftp_client.py
fromftplibimportFTPimportsysimportosglobalf_objdefupdate(path):globalf_objfile=os.path.split(path)[1]ext=os.path.splitext(file)[1]try:ifextin('.txt','.htm','html'):f_obj.storline('STOR '+file,open(file))else:f_obj.storbinary('STOR '+file,open(file,'rb'),1024)except:print'read file error!'defdownload(path,outfile=None):globalf_objifoutfileisNone:outfile=sys.stdoutdir=os.path.split(path)[0]file=os.path.split(path)[1]ext=os.path.splitext(file)[1]default_dir=f_obj.pwd()ifdirisnotNone:f_obj.cwd(dir)iflen(file)==0:print'please input right file or path>>'returntry:ifextin('.txt','.htm','.html','.png'):outfile=open(file,'w')f_obj.retrlines('RETR '+file,lambdas,w=outfile.write:w(s+"\n"))else:f_obj.retrbinary('RETR '+file,outfile.write)except:print'download error!'print'download success!'deffunc_cmd(cmd,outfile=None):globalf_objifoutfileisNone:outfile=sys.stdoutifcmd=='1':print'Current dir files as:'f_obj.dir()elifcmd=='2':try:str=''list=[]dir=raw_input('input dir>>')list=f_obj.nlst(dir)' '.join(list)printlistexcept:print'error'elifcmd=='3':print'you want to upload file to ftp!'filename=raw_input('please input filename or path>>')update(filename)print'upload succ!'elifcmd=='4':print'you want to download files from tfp!'filename_path=raw_input('please input filename or path>>')download(filename_path)print'------download succ!------'elifcmd=='5':print'Current dir:'printf_obj.pwd()elifcmd=='6':try:path=raw_input('please input the path>>')f_obj.cwd(path)except:print'error'elifcmd=='7':try:path=raw_input('please input the dir>>')f_obj.mkd(path)except:print'error'elifcmd=='8':try:dir=raw_input('please input the dir which you want remove>>')f_obj.rmd(dir)except:print'error'elifcmd=='9':try:file=raw_input('please input the filename>>')f_obj.size(file)except:print'error'elifcmd=='10':f_obj.quit()f_obj.close()print'结束连接......'sys.exit(0)else:print'no command!'raw_input('enter any key continue.....')defmain():globalf_objhost='192.168.1.12'user='tomy'password='111111'try:print'Connect Host PC......'f_obj=FTP(host)printf_obj.getwelcome()except:print"Can't reach the Ftp host!"sys.exit(1)try:print'login by user.....'f_obj.login('19930','111111')except:print"Can't login!"sys.exit(1)while(1):intro_str='''
All commands as:
1:显示当前文件夹文件列表(含有详细列表信息)
2:显示当前文件夹文件
3:上传文件
4:下载文件
5:显示当前目录
6:跳转进入某目录
7:创建一个新的目录
8:删除一个目录
9:返回一个文件的文件大小
10:退出FTP
'''printintro_strcmd=raw_input('please input cmd>>')func_cmd(cmd)if__name__=='__main__':main()