ftplib模块编写简单的ftp服务

 1 from ftplib import *
 2 import os,readline
 3 import sys
 4 class MyFtp:
 5      ftp = FTP()   #建立一个ftp对象的链接
 6      def __init__(self, host, port=‘21‘):         #构造函数初始化
 7          self.ftp.connect(host=host,timeout=100)  #连接ftp服务器
 8      def Login(self, user, passwd):               #登录函数
 9          self.ftp.login(user=user, passwd=passwd )
10          print (self.ftp.welcome)                  #登陆成功后ftp显示欢迎信息
11
12          def DownLoadFile(self, LocalFilePath, RemoteFilePath):
13          file = open(LocalFilePath, ‘wb‘)
14          self.ftp.retrbinary( "RETR %s" %( RemoteFilePath ), file.write )  #下载文件到本地
15          file.close()
16          return True
17
18      def DownLoadFileTree(self, LocalFileDir, RemoteFileDir):
19          if os.path.isdir( LocalfileDir ) == False:     #如果传入本地的不是目录
20              os.makedirs(LocalFileDir)                   #就在本地新建该目录
21          self.ftp.cwd(RemoteFileDir)                     #切换到远程目录
22          RemoteFiles = self.ftp.nlst()                   #把远程目录里的所有文件都传给 RemoteFiles变量
23          for file in RemoteFiles:
24              Local = os.path.join(LocalFilesDir, file )
25              chang = os.path.join(RemoteDir,file )
26              if self.IsDir(chang):
27                  self.DownLoadFileTree(Local, chang)
28              else:
29                  self.DownLoadFile( Local, chang)
30          self.ftp.cwd( ".." )
31
32      def IsDir(self, path):
33          if os.path.isdir(path) == True:
34             self.juge = True
35          else:
36              self.juge = False
37          return self.juge
38
39      def UpLoadFileTree(self, LocalFileDir, RemoteFileDir):
40          if os.path.isdir(LocalFileDir) == False:
41              print( ‘wrong !Please Input Dir‘)
42          if os.path.isdir(RemoteFileDir) == False:
43              os.makedirs(RemoteFileDir)
44          LocalFiles = os.listdir(LocalFileDir)
45          self.ftp.cwd(RemoteFileDir)
46          for Local in LocalFiles:
47             src = os.path.join( LocalFileDir, Local)
48             chang = os.path.join(RemoteFileDir,Local)
49             if os.path.isdir(src):
50              self.UpLoadFileTree(src,chang)
51             else:
52              self.UpLoadFile(src,chang)
53         self.ftp.cwd( ".." )
54
55      def UpLoadFile(self, LocalFilePath, RemoteFilePath):
56          if os.path.isfile( LocalFilePath ) == False:
57              return False
58          file = open(LocalFile, "rb")
59          self.ftp.storbinary(‘STOR %s‘%RemoteFile, file, 4096)
60          file.close()
61
62
63 ftp = myFtp(‘192.168.19.153‘)   #实例化
64
65 def Login():
66     ftp.Login(‘root‘,‘root‘)
67 def Update():
68     print(‘\033[34mUping.....\033[m‘)
69     ftp.UpLoadFileTree(‘main‘, "/xxx" )
70     print(‘Done‘)
71 def DownLoad():
72     print(‘\033[34mDowning.....\033[m‘)
73     ftp.DownLoadFileTree(‘localDir‘,‘remoteDir‘)
74         print (‘Done‘)
75 def Close():
76      self.ftp.quit()
77
78 def Menu():
79     print ("""\033[;32mWelcome \033[0m\n""")
80     print ("\t(1) Login")
81     print ("\t(2) Update")
82     print ("\t(3) DownLoad")
83     print ("\t(4) close")
84     while True:
85        choices = raw_input(‘\033[32mChoice>>\033[m‘).strip()
86        if len(choices) == 0:continue
87        if choices   == ‘1‘:Login()
88        elif choices == ‘2‘:Update()
89        elif choices == ‘3‘:DownLoad()
90        elif choices == ‘4‘:close()
91
92 Menu()

http://www.cnblogs.com/zhuweiblog/p/5154752.html
时间: 2024-11-10 05:37:38

ftplib模块编写简单的ftp服务的相关文章

python ftplib模块编写简单的ftp服务

1 from ftplib import * 2 import os,readline 3 import sys 4 class MyFtp: 5 ftp = FTP() #建立一个ftp对象的链接 6 def __init__(self, host, port='21'): #构造函数初始化 7 self.ftp.connect(host=host,timeout=100) #连接ftp服务器 8 def Login(self, user, passwd): #登录函数 9 self.ftp.

基于server2016搭建简单的FTP服务

基于server2016搭建简单的FTP服务 > 简介:FTP 是因特网网络上历史最悠久的网络工具,从 1971 年由 A KBHUSHAN 提出第一个 FTP 的RFC(RFC114)至今近半个世纪来,FTP 凭借其独特的优势一直都是因特网中最重要.最广泛的服务之一. FTP 的目标是提高文件的共享性,提供非直接使用远程计算机,使存储介质对用户透明和可靠高效地传送数据.它能操作任何类型的文件而不需要进一步处理,就像MIME或Unicode一样.但是,FTP有着极高的延时,这意味着,从开始请求到

puppet安装于配置与编写简单模块

1.安装Puppet-server.puppet和facter 1 [[email protected] ~]# yum install puppet puppet-server facter -y #系统会自己安装一些ruby依赖包环境 2.配置puppet.conf注意:这个里面配置了两个certname名称,其中[master]中配置的certname是为所有节点认证用的master名称,[agent]中配置的certname是他本身agent的名称,当然不配置默认是和master的名称是

SELECTORS模块实现并发简单版FTP

环境:windows, python 3.5功能:使用SELECTORS模块实现并发简单版FTP允许多用户并发上传下载文件 结构:ftp_client ---| bin ---| start_client.py ......启动客户端 conf---| config.py ......客户端参数配置 system.ini ......客户端参数配置文件 core---| clients.py ......客户端主程序 home ......默认下载路径ftp_server ---| bin --

scapy编写简单的ARP扫描脚本 本课程基于 Python 的 scapy 模块编写,适合有 Python 基础的同学学习,最终完成一个简单的 ARP 扫描脚本。

scapy编写简单的ARP扫描脚本 本课程基于 Python 的 scapy 模块编写,适合有 Python 基础的同学学习,最终完成一个简单的 ARP 扫描脚本.

python使用ftplib模块实现FTP文件的上传下载

python已经默认安装了ftplib模块,用其中的FTP类可以实现FTP文件的上传下载 FTP文件上传下载 # coding:utf8 from ftplib import FTP def upload(f, remote_path, local_path): fp = open(local_path, "rb") buf_size = 1024 f.storbinary("STOR {}".format(remote_path), fp, buf_size) f

构建简单的 C++ 服务组件,第 1 部分: 服务组件体系结构 C++ API 简介

构建简单的 C++ 服务组件,第 1 部分: 服务组件体系结构 C++ API 简介 熟悉将用于 Apache Tuscany SCA for C++ 的 API.您将通过本文了解该 API 的主要组成部分,以便快速入门. 查看本系列更多内容 | 0 评论: Ed Slattery ([email protected]), 软件工程师, IBM UK Pete Robbins ([email protected]), 软件工程师, IBM UK Andrew Borley ([email pro

ftp服务搭建

一.FTP协议简介 1.什么是FTP协议 FTP(File Transfer Protocol,文件传输协议) 是 TCP/IP 协议组中的协议之一.FTP协议包括两个组成部分,其一为FTP服务器,其二为FTP客户端.其中FTP服务器用来存储文件,用户可以使用FTP客户端通过FTP协议访问位于FTP服务器上的资源.默认情况下FTP协议使用TCP端口中的20和21这两个端口,其中20用于传输数据(客户端和FTP服务器进行文件传输或者列表的通道),21用于传输控制信息(客户端和FTP服务器进行沟通的

基于Asterisk的VoIP开发指南——Asterisk 模块编写指南(1)

原文:基于Asterisk的VoIP开发指南--Asterisk 模块编写指南(1) 1 开源项目概述 Asterisk是一个开源的软件包,通常运行在Linux操作系统平台上.Asterisk可以用三种协议来实现VoIP,同时可以与目前电话使用的标准硬件进行交互通信,Asterisk在实现VoIP时,不需要任何附加硬件,本文所采用的也是这种使用方式.但是,如果企业没有与VoIP语音网关运营商建立合作关系,想要自己构建这样的一个平台,那么要和数字电话设备与模拟电话设备进行交互通信,Asterisk