python通过ftp上传文本文件storlines怎么用_python实现ftp客户端示例分享

#!/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

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值