Python 用多线程上传和下载文件
# -*- coding: utf-8 -*-
__author__ = 'louis' from ftplib import FTP
import multiprocessing
import time def ftpconnect():
ftp = FTP()
timeout = 30
port = 22
ftp.connect('localhost',port,timeout) # 连接FTP服务器
ftp.login('user','password') # 登录
return ftp def upload(FileName, FileLocalation):
ftp = ftpconnect()
# print ftp.getwelcome() # 获得欢迎信息
ftp.cwd(r"") # 设置FTP路径
for i in range(len(FileName)):
print "%s The start of upload, %s" % (time.ctime(),FileName[i])
fp = open(FileLocalation[i], 'rb') ftp.storbinary('STOR ' + FileName[i], fp)
fp.close()
print "%s The end of the %s" % (time.ctime(), FileName[i])
ftp.quit() # 退出FTP服务器 def download(FileName, FilePath):
ftp = ftpconnect()
ftp.cwd(r"") # 设置FTP路径
for i in range(len(FileName)):
print "%s The start of downloading, %s" % (time.ctime(), FileName[i])
file_handle = open(FilePath[i], 'w').write ftp.retrbinary("RETR " + FileName[i], file_handle)
print "%s The end of the %s" % (time.ctime(), FileName[i]) ftp.quit() if __name__=='__main__':
# 上传视频文件到服务器 前提是在c:\te中,已经有1000个视频文件,它们的名字分别是1.avi, 2.avi. 3.avi, ..., 1000.avi
# p = [None]*1000
# filelocal = r'c:\Te'
#
# for i in range(20):
# baiWei = i * 50
# filename = [None] * 50
# filelocalation = [None] * 50
# for j in range(50):
# filename_pre = baiWei + j + 1
# filename[j] = "%s.avi" % filename_pre
# filelocalation[j] = filelocal + "\\" + filename[j]
# print filelocalation
# p[i] = multiprocessing.Process(target=upload, args=(filename, filelocalation))
#
# for i in range(20):
# p[i].start() # 下载视频文件到本地, 前提是ftp服务器中已经有100个视频文件,它们的名字是1.avi, 2.avi, 3.avi, ..., 100.avi
p = [None]*100
fileDir = r'D:\local'
for i in range(10):
shiWei = i * 10
fileName = [None]*10
filePath = [None]*10
for j in range(10):
fileName_pre = shiWei + j + 1
fileName[j] = "%s.avi" % fileName_pre
filePath[j] = fileDir + "\\" + fileName[j]
print filePath
p[i] = multiprocessing.Process(target=download, args=(fileName, filePath)) for i in range(10):
p[i].start()
Python 用多线程上传和下载文件的更多相关文章
- 使用python操作FTP上传和下载
函数释义 Python中默认安装的ftplib模块定义了FTP类,其中函数有限,可用来实现简单的ftp客户端,用于上传或下载文件,函数列举如下 ftp登陆连接 from ftplib import F ...
- SecureCRT上传和下载文件
SecureCRT上传和下载文件(下载默认目录) SecureCR 下的文件传输协议有ASCII .Xmodem .Ymodem .Zmodem ASCII:这是最快的传输协议,但只能传送文本文件. ...
- 11、只允许在主目录下上传和下载文件,不允许用putty登录
创建用户xiao, 使其只允许在用户主目录 (/var/www/html)下上传和下载文件,不允许用putty登录 (为了安全起见,不给过多的权限) 1.创建xiao用户 [root@localh ...
- 每天一个linux命令(26):用SecureCRT来上传和下载文件
用SSH管理linux服务器时经常需要远程与本地之间交互文件.而直接用SecureCRT自带的上传下载功能无疑是最方便的,SecureCRT下的文件传输协议有ASCII.Xmodem.Zmodem. ...
- 利用SecureCRT上传、下载文件(使用sz与rz命令),超实用!
利用SecureCRT上传.下载文件(使用sz与rz命令),超实用! 文章来源:http://blog.csdn.net/dongqinliuzi/article/details/39623169 借 ...
- Linux--用SecureCRT来上传和下载文件
SecureCRT下的文件传输协议有以下几种:ASCII.Xmodem.Ymodem.Zmodem ASCII:这是最快的传输协议,但只能传送文本文件. Xmodem:这种古老的传输协议速度较慢,但由 ...
- secureCRT简单上传、下载文件记录
secureCRT简单上传.下载文件记录: 1)sz下载 -y 覆盖 2)rz上传 -y 覆盖 3)以上两个命令属于安装时包含在“Dial-up Networking Support"组中 ...
- 每天一个linux命令(26)--用SecureCRT来上传和下载文件
用SSH管理Linux 服务器时经常需要远程与本地之间交互文件,而直接使用 SecureCRT 自带的上传下载功能无疑是最方便的,SecureCRT下的文件传输协议有ASCII.Xmodem.Zmod ...
- 每天一个linux命令(26):用SecureCRT来上传和下载文件(转载自竹子)
用SSH管理linux服务器时经常需要远程与本地之间交互文件.而直接用SecureCRT自带的上传下载功能无疑是最方便的,SecureCRT下的文件传输协议有ASCII.Xmodem.Zmodem. ...
随机推荐
- 转帖 最全的HTML、CSS知识点总结,浅显易懂
一,html+css基础1-1Html和CSS的关系学习web前端开发基础技术需要掌握:HTML.CSS.JavaScript语言.下面我们就来了解下这三门技术都是用来实现什么的:1. HTML是网页 ...
- (转载) win10生成SSH keys
(转载) win10生成 SSH keys: SSH key 可以让你在你的电脑和Code服务器之间建立安全的加密连接. 先执行以下语句来判断是否已经存在本地公钥: cat ~/.ssh/id_ ...
- node之Express框架
Express是node的框架,通过Express我们快速搭建一个完整的网站,而不再只是前端了!所以Express还是非常值得学习的! express有各种中间件,我们可以在官方网站查询其用法. Ex ...
- 51nod 1245 Binomial Coefficients Revenge
Description C(M,N) = M! / N! / (M - N)! (组合数).给出M和质数p,求C(M,0), C(M,1)......C(M,M)这M + 1个数中,有多少数不是p的倍 ...
- 深入理解 Java 内存模型(转载)
摘要: 原创出处 http://www.54tianzhisheng.cn/2018/02/28/Java-Memory-Model/ 「zhisheng」欢迎转载,保留摘要,谢谢! 0. 前提 &l ...
- springboot 整合kafka
本文介绍如何在springboot项目中集成kafka收发message. 1.先解决依赖 springboot相关的依赖我们就不提了,和kafka相关的只依赖一个spring-kafka集成包 &l ...
- mysql什么情况下会触发表锁
锁是计算机协调多个进程或线程并发访问某一资源的机制.在数据库中,除传统的计算资源(如CPU.RAM.I/O等)的争用以外,数据也是一种供许多用户共享的资源.如何保证数据并发访问的一致性.有效性是所有数 ...
- MockPlus的使用方法简介
不废话直接上图,不明白的留言.
- Java JSONArray的封装与解析
package com.kigang.test; import net.sf.json.JSONArray; import net.sf.json.JSONObject; import java.ut ...
- ArcGIS Enterprise 10.5.1 静默安装部署记录(Centos 7.2 minimal)- 5、安装Datastore
安装Datastore 解压datastore安装包,tar -xzvf ArcGIS_DataStore_Linux_1051_156441.tar.gz 切换到arcgis账户静默安装server ...