关闭

ftp-client-1

标签: pythonpyton-ftpftp客户端
301人阅读 评论(0) 收藏 举报
分类:

使用语言:python 2.7
主要模块:ftplib

主要使用一个while循环,没有进行完整的异常处理,根据实际需求情况修改!

#coding=utf-8
from ftplib import FTP
import sys,os

target_host="192.168.142.134"
target_port="2121"
ftp_user="user"
ftp_pass="12345"
timeout=10
command=""
def ftp_cmd_list():
    print ("local      local directory")
    print ("cls        clear the screen")
    print ("pwd        print the name of current woring directory")
    print ("cd         change the working directory")
    print ("mkd        create new directory")
    print ("rmd        delete a directory")
    print ("dir        display the list of directory")
    print ("rename     rename a file")
    print ("del        delete a file")
    print ("quit       close connection politely")
    print ("close      clode connection impolitely")
    print ("upload     send files from local to remote server")
    print ("download   receive files from server")
def main():
    global target_host
    global target_port
    global ftp_user
    global ftp_pass
    global timeout
    global command
    parameter=len(sys.argv)
    if parameter!=1:
        print "don't add parameter"
    f=FTP()
    f.set_debuglevel(1)
    f.connect(host=target_host, port=target_port,timeout=timeout)
    f.login(user=ftp_user,passwd=ftp_pass)
    f.getwelcome()
    while True:
        command=raw_input(' <? to get help>## :')
        if command=='?'or command=='help':
            ftp_cmd_list()
        elif command=='pwd':
            f.pwd()  
        elif command=='dir':
            f.dir()
        elif command=='cd':
            dirname=raw_input('dirname:')
            f.cwd(dirname)
        elif command=='mkd':
            mkdir=raw_input('dirname:')
            f.mkd(mkdir)
        elif command=="rmd":
            rmdir=raw_input('dirname:')
            f.rmd(rmdir)
        elif command=='rename':
            fromname=raw_input('old name:')
            toname=raw_input('new name:')
            f.rename(fromname, toname)
        elif command=='del':
            delname=raw_input('filename:')
            f.delete(delname)
        elif command=='local':
            os.system("dir")
        elif command=='cls':
            os.system("cls")        
        elif command=='quit':
            f.quit()
            sys.exit(0)
        elif command=='close':
            f.close()
            sys.exit(0)
        elif command=='upload': 
            localfile=raw_input('localfile:')
            remotefile=raw_input('remotefile:')
            file_handler=open(localfile,'rb')
            f.storbinary('STOR %s'%remotefile,file_handler)
            file_handler.close()
        elif command=='download':
            remote_file=raw_input('remotefile:')
            local_file=raw_input('localfile:')
            file_hand=open(local_file,'wb')
            f.retrbinary('RETR %s'%(remote_file),file_hand.write)
        elif command=='stop':
            f.abort()
        else:
            print "this parameter is illegal"    

if __name__=='__main__':
    main()

0
0
查看评论
发表评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场

linux下ftp的server/client的部署及使用

1.首先在一台linux机器上安装ftp服务端软件,例如proftpd,vsftpd等等 2.ftp客户端使用 (1)ftp remoteserver      通过ip或者主机名来来通过ftp协...
  • wangjianno2
  • wangjianno2
  • 2015-07-12 02:43
  • 2026

FTP服务器和客户端源代码编写问题(ftp server client source)

其实FTP也就是普通的Socket程序,只是需要按照FTP协议(RFC959, 1635?可能我记错了)去做,也就是每个消息有固定的结构的,比如头3个字节必须是200,201,300,400之类的数...
  • wxqian25
  • wxqian25
  • 2013-11-18 14:24
  • 1951

ftp客户端命令详解及实例

经常使用ftp进行文件上下传的用户使用的工具大部分都是flashxp或者java开源实现的FileZilla Client(当然也有java开源的FileZilla Server )客户端软件实现,可...
  • MINEZHANGHAO
  • MINEZHANGHAO
  • 2013-11-06 12:53
  • 4870

linux下ftp的server/client的部署及使用

1.首先在一台linux机器上安装ftp服务端软件,例如proftpd,vsftpd等等 2.ftp客户端使用 (1)ftp remoteserver      通过ip或者主机名来来通过ftp协...
  • wangjianno2
  • wangjianno2
  • 2015-07-12 02:43
  • 2026

Python 编写 FTP Client

************V 0.4Beta版本************ 1.修正了History功能,使得能够正确读写文件,返回正确的值 2.经过一些测试修正了一些微小容易引起崩溃的bug 3....
  • zavierxu
  • zavierxu
  • 2011-11-14 21:40
  • 1340

Implements a Java FTP client from socket and RFC

/* Copyright Paul James Mutton, 2001-2004, http://www.jibble.org/ This file is part of Simple...
  • raistlin_zhang
  • raistlin_zhang
  • 2011-04-11 22:55
  • 231

FTP_client c program

/** Copyright (c) www.chinaunix.net(ldap)* All rights reserved.** Filename        : ftp.c*/#include ...
  • xq20051221
  • xq20051221
  • 2011-07-18 23:15
  • 484

课程设计:用wininet接口写的FTP Client

题目1  FTP客户端 编写一个简单的FTP客户机程序,要求能够向FTP服务器发送命令,并接收FTP服务器返回的响应与数据。程序设计的具体要求如下: 1)要求实现的程序为图形化界面(如图下所示...
  • cfeibiao
  • cfeibiao
  • 2011-12-24 10:43
  • 1352

ftp client api

sun.net.ftp.FtpClient.,该类库主要提供了用于建立FTP连接的类。利用这些类的方法,编程人员可以远程登录到FTP服务器,列举该服务器上的目录,设置传输协议,以及传送文件。FtpCl...
  • u010395804
  • u010395804
  • 2014-02-24 14:14
  • 1037

ftp client

// Native wifi.cpp : 定义控制台应用程序的入口点。 // #include "stdafx.h" #ifndef UNICODE #define UNICODE ...
  • li_danwang
  • li_danwang
  • 2014-09-21 23:02
  • 464
    个人资料
    • 访问:28529次
    • 积分:882
    • 等级:
    • 排名:千里之外
    • 原创:55篇
    • 转载:4篇
    • 译文:5篇
    • 评论:1条
    最新评论