Ftp客户端(上传文件)

#coding=utf-8
import os
import socket
import hashlib
import json

# client = socket.socket()    #申明socket类型,同时生成socket连接对象
# client.connect(('localhost',6969)) #传入元组,连接到服务端
class FtpClient(object):
    def __init__(self):
        self.client = socket.socket()

    def help(self):
        """
        ls:
        pwd:
        cd..
        get filename
        put filename
        :return:
        """
    def connect(self,ip,port):
        self.client.connect((ip,port))

    def interactive(self):
 #       self.authenticate()
        while True:
            cmd = raw_input('>>').strip()
            if len(cmd) == 0 :continue
            cmd_str = cmd.split()[0]
            if hasattr(self,'cmd_%s'%cmd_str):
                func = getattr(self,'cmd_%s'%cmd_str)
                func(cmd)
            else:
                self.help()

    def cmd_put(self,*args):
        cmd_split = args[0].split()
        if len(cmd_split) >1 :
            filename = cmd_split[1]
            if os.path.isfile(filename):
                filesize = os.stat(filename).st_size
                msg_dic = {'action':'put',
                           'filename':filename,
                           'size':filesize}
                self.client.send(json.dumps( msg_dic))
                server_response = self.client.recv(1024)
                f = open(filename,'rb')
                for line in f:
                    self.client.send(line)
                else:
                    print '文件上传完成'
            else:
                print '文件不存在',filename

if __name__ == '__main__':
    ftp = FtpClient()
    ftp.connect('localhost',9999)
    ftp.interactive()

 

转载于:https://www.cnblogs.com/qiangayz/p/8613650.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值