代码如下:

#!/usr/bin/python

#coding:utf-8

#write:JACK

#info:ftp example

import ftplib, socket, os

from time import sleep, ctime

def LoginFtp(self):

ftps = ftplib.FTP()

ftps.connect(self.host,self.port)

ftps.login(self.name,self.passwd)

#未进行判断地址输入是否为ip或者域名;可以进行判断是否包含class LoFtp(object):

'this is ftp class example'

host = str(raw_input('host,127.0.0.1\n'))

if host == '':host = '127.0.0.1'

port = raw_input('port,21\n')

if not(port.isdigit()):port =21

name = str(raw_input('name,anonymous\n'))

if name=='':name='anonymous'

passwd = str(raw_input('password\n'))

if passwd =='':passwd=''

def ZqFtp(self,host,name,passwd,port):

self.host = host

self.name = name

self.passwd = passwd

self.port = port

def LoginFtp(self):

self.ftps = ftplib.FTP()

self.ftps.connect(self.host,self.port)

self.ftps.login(self.name,self.passwd)

self.buffer = 2048 #设置缓存大小

def ShowFtp(self):

self.LoginFtp()

self.ftps.dir('/')

dirs = str(raw_input('PLEASE INPUT DIR!\n'))

print self.ftps.dir(dirs)

def UpFtp(self):

'uploads files'

self.LoginFtp()

self.ftps.set_debuglevel(2)

filename = str(raw_input('PLEASE FILE NAME!\n'))

file_open=open(filename,'rb') #打开文件 可读即可

self.ftps.storbinary('STOR %s'% os.path.basename(filename),file_open,self.buffer)

# 上传文件

self.ftps.set_debuglevel(0)

file_open.close()

def DelFtp(self):

'Delete Files'

self.LoginFtp()

filename=str(raw_input('PLEASE DELETE FILE NAME!\n'))

self.ftps.delete(filename)

def RemoveFtp(self):

'Remove File'

self.LoginFtp()

self.ftps.set_debuglevel(2)#调试级别,0无任何信息提示

oldfile=str(raw_input('PLEASE OLD FILE NAME!\n'))

newfile=str(raw_input('PLEASE NEW FILE NAME!\n'))

self.ftps.rename(oldfile,newfile)

self.ftps.set_debuglevel(0)

def DownFtp(self):

'Download File'

self.LoginFtp()

self.ftps.set_debuglevel(2)

filename=str(raw_input('PLEASE FILE NAME!\n'))

file_down = open(filename,'wb').write

self.ftps.retrbinary('STOP %s' % os.path.basename(filename),file_down,self.buffer)

self.ftps.set_debuglevel(0)

file_down.close()

a = LoFtp()

print a.ShowFtp()

while True:

helpn= str(raw_input('Whether to continue to view or exit immediately!(y/n/q)\n'))

if (helpn=='y')or(helpn=='Y'):

dirs = str(raw_input('PLEASE INPUT DIR!\n'))

a.ftps.dir(dirs)

elif (helpn=='q')or (helpn=='Q'):

exit()

else:

break

while True:

print '上传请选择----1'

print '下载请选择----2'

print '修改FTP文件名称----3'

num = int(raw_input('PLEASE INPUT NUMBER![exit:5]\n'))

if num ==1:

upf = a.UpFtp()

print 'Upfile ok!'

elif num ==2:

dof = a.DownFtp()

print 'Download file ok!'

elif num ==3:

ref = a.RemoveFtp()

print 'Remove file ok!'

else:

a.ftps.quit()

print 'Bingo!'

break

#login(user='anonymous',passwd='', acct='') 登录到FTP服务器,所有的参数都是可选的

#pwd() 得到当前工作目录

#cwd(path) 把当前工作目录设置为path

#dir([path[,...[,cb]]) 显示path目录里的内容,可选的参数cb 是一个回调函数,它会被传给retrlines()方法

#nlst([path[,...]) 与dir()类似,但返回一个文件名的列表,而不是显示这些文件名

#retrlines(cmd [, cb]) 给定FTP 命令(如“RETR filename”),用于下载文本文件。可选的回调函数cb 用于处理文件的每一行

#retrbinary(cmd, cb[,bs=8192[, ra]]) 与retrlines()类似,只是这个指令处理二进制文件。回调函数cb 用于处理每一块(块大小默认为8K)下载的数据。

#storlines(cmd, f) 给定FTP 命令(如“STOR filename”),以上传文本文件。要给定一个文件对象f

#storbinary(cmd, f[,bs=8192]) 与storlines()类似,只是这个指令处理二进制文件。要给定一个文件对象f,上传块大小bs 默认为8Kbs=8192])

#rename(old, new) 把远程文件old 改名为new

#delete(path) 删除位于path 的远程文件

#mkd(directory) 创建远程目录

#每个需要输入的地方,需要进行排查检错。仅仅这个功能太小了。不过根据实际情况更改,放在bt里边当个小工具即可

#有点烂,没有做任何try

本条技术文章来源于互联网,如果无意侵犯您的权益请点击此处反馈版权投诉

本文系统来源:php中文网

TAG标签:ftp客户端

python编写ftp客户端_python实现ftp客户端示例分享相关推荐

  1. python编写脚本教程_python编写一个会算账的脚本的示例代码

    python算账脚本 1.假如小明卡里有10000元去商场买东西发现钱不够又向父母借了5000账单如下 2.以下脚本就能实现上面的运算 from time import strftime import ...

  2. 用python朗读字母-使用python编写一个语音朗读闹钟功能的示例代码

    想找一个可以播放文字的闹钟找不到,自己写一个更简单.TTS实现由很多种办法,百度等都提供了API接口,但类似百度,需要先注册等一系列动作. 其实windows自带的win32com功能可以简单实现TT ...

  3. python在线朗读-使用python编写一个语音朗读闹钟功能的示例代码

    想找一个可以播放文字的闹钟找不到,自己写一个更简单.TTS实现由很多种办法,百度等都提供了API接口,但类似百度,需要先注册等一系列动作. 其实windows自带的win32com功能可以简单实现TT ...

  4. python闹钟源码_使用python编写一个语音朗读闹钟功能的示例代码

    想找一个可以播放文字的闹钟找不到,自己写一个更简单.TTS实现由很多种办法,百度等都提供了API接口,但类似百度,需要先注册等一系列动作. 其实windows自带的win32com功能可以简单实现TT ...

  5. python 语音朗读软件下载_使用python编写一个语音朗读闹钟功能的示例代码

    想找一个可以播放文字的闹钟找不到,自己写一个更简单.TTS实现由很多种办法,百度等都提供了API接口,但类似百度,需要先注册等一系列动作. 其实windows自带的win32com功能可以简单实现TT ...

  6. python 高性能http服务器_Python高性能HTTP客户端

    Python中有许多HTTP客户端.使用最广泛且最容易的是requests. 持续连接 持续连接是自HTTP 1.1以来的标准,尽管许多应用程序并未使用它们.以简单模式使用请求时(例如使用get函数) ...

  7. 好玩的python代码聊天客户端_python socket实现客户端与服务器端对话

    最近巩固下python语言,说真的,使用了这么多脚本语言,还是这门比较好玩点,快速,简洁,容易上手更不用说了. socket 套接字是为特定网络协议(例如TCP/IP,ICMP/IP,UDP/IP等) ...

  8. python编写木马攻击_Python编写简易木马程序

    Python编写简易木马程序 0x00 准备 文章内容仅供学习研究.切勿用于非法用途! 这次我们使用Python编写一个具有键盘记录.截屏以及通信功能的简易木马.依然选用Sublime text2 + ...

  9. python编写数学公式大全_python - 用python编写数学公式 - 堆栈内存溢出

    我正在用python编写此公式. 请查看图片我正在使用以下代码. 它总是会出错. import math import matplotlib matplotlib.use('TkAgg') from ...

最新文章

  1. 中国顶尖的技术社区们在一个群里,会聊什么…
  2. self attentin Q K V心得
  3. 设置路由器端口转发功能如何操作
  4. python创建追加_Python文件的创建与追加
  5. typescript get方法_.NET手撸绘制TypeScript类图——上篇
  6. matlab安装第三方库,Matlab调用cpp+第三方库
  7. 算力至上?AI芯片大对决
  8. ACM算法竞赛入门 概述
  9. 2022-04-行为经济学-光华管理学院-孟涓涓
  10. 从囚徒困境到世风日下
  11. linux启动过程文件系统崩溃,Linux启动过程中文件系统的加载
  12. 别在坑年轻人了,他们好骗但不傻。
  13. 关于 SwiperJS 的初次使用
  14. python使用matplotlib包画出3d图像
  15. 给联想拯救者15isk装win7遇到的问题
  16. Wifi4更换Wifi6路由器的使用体验
  17. 韩国的计算机sci,JOURNAL OF KOREAN MEDICAL SCIENCE《韩国医学科学杂志》SCI论文投稿_SCI期刊大全_SCI期刊点评_万维书刊网...
  18. 什么是深拷贝和浅拷贝?以及怎么实现深拷贝和浅拷贝?
  19. hypermesh 根据坐标施加载荷- Field 载荷映射,以温度场载荷为例
  20. 【Java面试题】把数组排成最小的数

热门文章

  1. mysql网络异常_网络连接配置出现异常_网络连接配置无法修复_Mysql网络连接的性能配置项...
  2. 小学计算机教师集体备课计实,教师集体备课活动记录表.doc
  3. 机器视觉:CMOS图像传感器
  4. #includemmsystem头文件出错
  5. 2018.12.2 频谱分析
  6. 编写通用 Hello World 驱动程序 (KMDF)
  7. 在制作只有一页的WORD小报时再添加一页
  8. 基于Windows下处理Java错误:编码GBK的不可映射字符的解决方案
  9. java中 String StringBuffer StringBuilder的区别
  10. JS 继承(类式 与 原型式)