Python 用多线程上传和下载文件

 1 # -*- coding: utf-8 -*-
 2 __author__ = ‘louis‘
 3
 4 from ftplib import FTP
 5 import multiprocessing
 6 import time
 7
 8
 9 def ftpconnect():
10     ftp = FTP()
11     timeout = 30
12     port = 22
13     ftp.connect(‘localhost‘,port,timeout) # 连接FTP服务器
14     ftp.login(‘user‘,‘password‘) # 登录
15     return ftp
16
17 def upload(FileName, FileLocalation):
18     ftp = ftpconnect()
19     # print ftp.getwelcome() # 获得欢迎信息
20     ftp.cwd(r"") # 设置FTP路径
21     for i in range(len(FileName)):
22         print "%s The start of upload, %s" % (time.ctime(),FileName[i])
23         fp = open(FileLocalation[i], ‘rb‘)
24
25         ftp.storbinary(‘STOR ‘ + FileName[i], fp)
26         fp.close()
27         print "%s The end of the %s" % (time.ctime(), FileName[i])
28     ftp.quit() # 退出FTP服务器
29
30 def download(FileName, FilePath):
31     ftp = ftpconnect()
32     ftp.cwd(r"") # 设置FTP路径
33     for i in range(len(FileName)):
34         print "%s The start of downloading, %s" % (time.ctime(), FileName[i])
35         file_handle = open(FilePath[i], ‘w‘).write
36
37         ftp.retrbinary("RETR " + FileName[i], file_handle)
38         print "%s The end of the %s" % (time.ctime(), FileName[i])
39
40     ftp.quit()
41
42
43 if __name__==‘__main__‘:
44     # 上传视频文件到服务器  前提是在c:\te中,已经有1000个视频文件,它们的名字分别是1.avi, 2.avi. 3.avi, ..., 1000.avi
45     # p = [None]*1000
46     # filelocal = r‘c:\Te‘
47     #
48     # for i in range(20):
49     #     baiWei = i * 50
50     #     filename = [None] * 50
51     #     filelocalation = [None] * 50
52     #     for j in range(50):
53     #         filename_pre = baiWei + j + 1
54     #         filename[j] = "%s.avi" % filename_pre
55     #         filelocalation[j] = filelocal + "\\" + filename[j]
56     #     print filelocalation
57     #     p[i] = multiprocessing.Process(target=upload, args=(filename, filelocalation))
58     #
59     # for i in range(20):
60     #     p[i].start()
61
62
63     # 下载视频文件到本地,  前提是ftp服务器中已经有100个视频文件,它们的名字是1.avi, 2.avi, 3.avi, ..., 100.avi
64     p = [None]*100
65     fileDir = r‘D:\local‘
66     for i in range(10):
67         shiWei = i * 10
68         fileName = [None]*10
69         filePath = [None]*10
70         for j in range(10):
71             fileName_pre = shiWei + j + 1
72             fileName[j] = "%s.avi" % fileName_pre
73             filePath[j] = fileDir + "\\" + fileName[j]
74         print filePath
75         p[i] = multiprocessing.Process(target=download, args=(fileName, filePath))
76
77     for i in range(10):
78         p[i].start()
79     
时间: 2024-08-09 10:31:43

Python 用多线程上传和下载文件的相关文章

Python远程登录Linux操作系统,执行命令、创建目录、上传及下载文件

主要是创建文件: #! /bin/bash # -*- coding: utf-8 -*- import paramiko import os ssh = paramiko.SSHClient() key = paramiko.AutoAddPolicy() ssh.set_missing_host_key_policy(key) pkey = paramiko.RSAKey.from_private_key_file('/root/.ssh/id_rsa') paramiko.util.log

使用python操作FTP上传和下载

Python中默认安装的ftplib模块定义了FTP类,其中函数有限,可用来实现简单的ftp客户端,用于上传或下载文件,函数列举如下 ftp登陆连接 from ftplib import FTP #加载ftp模块 ftp=FTP() #设置变量 ftp.set_debuglevel(2) #打开调试级别2,显示详细信息 ftp.connect("IP","port") #连接的ftp sever和端口 ftp.login("user","

Linux (rz、sz命令行)与本地电脑 命令行上传、下载文件

Linux 与本地电脑直接交互, 命令行上传.下载文件. 一.lrzsz命令行安装: 1.rpm安装:(链接: http://pan.baidu.com/s/1cBuTm2 密码: vijf) rpm -ivh lrzsz-0.12.20-22.1.x86_64.rpm 2.yum 安装: yum install lrzsz 二.命令使用: 1.发送到本地: sz 文件名 2.上传到服务器: rz -be 在弹出的框中选择文件,上传文件的用户和组是当前登录的用户

【转】每天一个linux命令(26):用SecureCRT来上传和下载文件

原文网址:http://www.cnblogs.com/peida/archive/2012/11/28/2793181.html 用SSH管理linux服务器时经常需要远程与本地之间交互文件.而直接用SecureCRT自带的上传下载功能无疑是最方便的,SecureCRT下的文件传输协议有ASCII.Xmodem.Zmodem. 文件传输协议: 文件传输是数据交换的主要形式.在进行文件传输时,为使文件能被正确识别和传送,我们需要在两台计算机之间建立统一的传输协议.这个协议包括了文件的识别.传送的

利用SecureCRT上传、下载文件(使用sz与rz命令),超实用!

    借助securtCRT,使用linux命令sz可以很方便的将服务器上的文件下载到本地,使用rz命令则是把本地文件上传到服务器.     其中,对于sz和rz的理解与记忆我用了如下的方法(很多时候容易搞混):     sz中的s意为send(发送),告诉客户端,我(服务器)要发送文件 send to cilent,就等同于客户端在下载.     rz中的r意为received(接收),告诉客户端,我(服务器)要接收文件 received by cilent,就等同于客户端在上传.    

基于sftp来上传和下载文件

1. 什么是sftp? sftp是Secure File Transfer Protocol的缩写,安全文件传送协议.可以为传输文件提供一种安全的加密方法.主要用来在Linux系统进行文件的上传和下载,无需其他的附属软件或者工具. 2. 如何打开sftp? Linux下直接在终端中输入:sftp username[email protected] ip(or remote host name).出现验证时,只需填入正确的密码即可实现远程链接.登入成功后终端呈现出:sftp>.... sftp在非

secureCRT上传、下载文件

secureCRT上传和下载命令分别为rz.sz 我的理解是rz,就是服务器接收(received),sz,就是服务器发送(send). secureCRT上的命令就是: 下载 sz filename(filename是你要下载的文件名,前提要进入那个文件所在的目录) 下载下来的文件存放的目录设置下图可见: 上传 rz再选择你要上传的文件. secureCRT上传.下载文件,布布扣,bubuko.com

Linux--用SecureCRT来上传和下载文件

SecureCRT下的文件传输协议有以下几种:ASCII.Xmodem.Ymodem.Zmodem ASCII:这是最快的传输协议,但只能传送文本文件. Xmodem:这种古老的传输协议速度较慢,但由于使用了CRC错误侦测方法,传输的准确率可高达99.6%. Ymodem:这是Xmodem的改良版,使用了1024位区段传送,速度比Xmodem要快Zmodem:Zmodem采用了串流式(streaming)传输方式,传输速度较快,而且还具有自动改变区段大小和断点续传.快速错误侦测等功能.这是目前最

linux命令学习笔记(26):用SecureCRT来上传和下载文件

用SSH管理linux服务器时经常需要远程与本地之间交互文件.而直接用SecureCRT自带的上传下载功能无疑是最方便的,SecureCRT下的文件传输协议有ASCII.Xmodem.Zmodem. 文件传输协议: 文件传输是数据交换的主要形式.在进行文件传输时,为使文件能被正确识别和传送,我们需要在两台计算机之间建立统一的传输协议.这个协议包括了文件的识别.传送的起止时间.错误的判断与纠正等内容.常见的传输协议有以下几种: ASCII:这是最快的传输协议,但只能传送文本文件. Xmodem:这