#-*-encoding:gbk-*-
#Author:没车步行
#Email:lu_zhouyu@hotmail.com
#Edit:2009-4-7
#Copyright:转载请注明出处
import sys
import base64
import shelve
import myftplib
import os
shlfp='task.dat'
class mytask:
"""
shlf:任务队列
remoteip:远程服务器IP,默认localhost
remoteport:远程服务器端口,默认21
remotepath:远程服务器路径,默认根目录
remotefilename:远程服务器文件,必填项
localpath:本地路径,默认程序目录
localfilename:本地文件,默认同远程服务器文件
taskcode:任务代码,用于判断任务是否已存在,假设性条件无限制
loginname:远程服务器登录名
loginpassword:远程服务器登录密码
"""
shlf=shelve.open(shlfp)
remoteip='localhost'
remoteport='21'
remotepath=localpath=''
localfilename=remotefilename=''
taskcode=''
loginname=''
loginpassword=''
def __init__(self):
self.printtask()
def maketask(self,remotefilename,localfilename,**kwargs):
self.remotefilename=remotefilename
if localfilename:
self.localfilename=localfilename
else:
self.localfilename=remotefilename
for k in kwargs.keys():
v=kwargs[k]
if k=='remoteip' and v!='':
self.remoteip=v
elif k=='remoteport' and v!='':
self.remoteport=v
elif k=='remotepath' and v!='':
self.remotepath=v
elif k=='localpath' and v!='':
self.localpath=v
elif k=='loginname' and v!='':
self.loginname=v
elif k=='loginpassword' and v!='':
self.loginpassword=v
self.starttask()
def removetask(self,taskid):
del self.shlf[taskid]
def starttask(self):
taskid='1'
if len(self.shlf):
taskid=str(int(max(self.shlf.keys()))+1)
taskval={}
taskval['remoteip']=self.remoteip
taskval['remoteport']=self.remoteport
taskval['remotepath']=self.remotepath
taskval['remotefilename']=self.remotefilename
taskval['localpath']=self.localpath
taskval['localfilename']=self.localfilename
taskval['taskcode']=self.taskcode
taskval['loginname']=self.loginname
taskval['loginpassword']=self.loginpassword
self.shlf[taskid]=taskval
myftplib.mywork(self.remoteip,self.remoteport,self.remotepath,self.remotefilename,self.localpath,self.localfilename,self.loginname,self.loginpassword,0)
del self.shlf[taskid]
self.shlf.close()
def restarttask(self,taskid):
taskval=self.shlf[taskid]
remoteip=taskval['remoteip']
remoteport=taskval['remoteport']
remotepath=taskval['remotepath']
remotefilename=taskval['remotefilename']
localpath=taskval['localpath']
localfilename=taskval['localfilename']
loginname=taskval['loginname']
loginpassword=taskval['loginpassword']
myftplib.mywork(remoteip,remoteport,remotepath,remotefilename,localpath,localfilename,loginname,loginpassword,1)
del self.shlf[taskid]
self.shlf.close()
def printtask(self):
print '%-6s|%-15s|%s'%('任务ID','服务器地址','下载文件名')
print '%s'%('-'*38)
for t in self.shlf.keys():
v=self.shlf[t]
print '%-6s|%-15s|%s'%(t,v['remoteip'],v['remotefilename'])
print ''
if __name__=='__main__':
mytask=mytask()
if len(mytask.shlf):
chk=raw_input('重新启动已存在的下载任务(Y-是/N-否):')
if chk.strip().upper()=='Y':
while 1:
tid=raw_input('输入任务ID:')
tid=tid.strip()
if mytask.shlf.has_key(tid):
mytask.restarttask(tid)
break
print '输入有误!',
sys.exit()
remoteip=raw_input("远程地址(localhost):")
remoteip=remoteip.strip()
remoteport=raw_input("远程端口(21):")
remoteport=remoteport.strip()
remotepath=raw_input("远程路径(默认为根目录):")
remotepath=remotepath.strip()
remotefilename=raw_input("远程文件名:")
remotefilename=remotefilename.strip()
loginname=raw_input("登录名:")
loginname=loginname.strip()
loginpassword=raw_input("登录密码:")
loginpassword=loginpassword.strip()
localfilename=raw_input("本地重命名(默认与远程文件同名):")
localfilename=localfilename.strip()
localpath=raw_input("本地路径(不存在自动创建):")
localpath=localpath.strip()
mytask.maketask(remotefilename,\
localfilename,\
remoteip=remoteip,\
remoteport=remoteport,\
remotepath=remotepath,\
localpath=localpath,\
loginname=loginname,\
loginpassword=loginpassword)
码农陆蜀黍
- 粉丝: 1
- 资源: 2
最新资源
- 毕设和企业适用springboot企业数据管理平台类及智能城市数据管理平台源码+论文+视频.zip
- 毕设和企业适用springboot企业数据管理平台类及智能农业平台源码+论文+视频.zip
- 毕设和企业适用springboot企业数据监控平台类及机器人控制平台源码+论文+视频.zip
- 毕设和企业适用springboot企业数据监控平台类及风险控制平台源码+论文+视频.zip
- 毕设和企业适用springboot企业数据监控平台类及电影票务系统源码+论文+视频.zip
- 毕设和企业适用springboot企业数据监控平台类及教育信息平台源码+论文+视频.zip
- 毕设和企业适用springboot企业数据监控平台类及技术文档管理平台源码+论文+视频.zip
- 毕设和企业适用springboot企业数据监控平台类及健身管理平台源码+论文+视频.zip
- 毕设和企业适用springboot企业数据监控平台类及酒店管理平台源码+论文+视频.zip
- 毕设和企业适用springboot企业数据监控平台类及流媒体内容推荐平台源码+论文+视频.zip
- 毕设和企业适用springboot企业数据监控平台类及民生服务平台源码+论文+视频.zip
- 毕设和企业适用springboot企业数据监控平台类及企业电子化平台源码+论文+视频.zip
- 毕设和企业适用springboot企业数据监控平台类及企业供应链平台源码+论文+视频.zip
- 毕设和企业适用springboot企业数据监控平台类及农场管理系统源码+论文+视频.zip
- 毕设和企业适用springboot企业数据监控平台类及企业级API管理平台源码+论文+视频.zip
- 毕设和企业适用springboot企业数据监控平台类及全渠道电商平台源码+论文+视频.zip
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈