导航:首页 > 编程语言 > pythonftplib多线程

pythonftplib多线程

发布时间:2022-03-01 04:13:00

python ftplib 传输文件大小的文件,如何传输较大文件

没有矛盾啊。只要你不一口气将所有文件都加载到内存里去。使用FTP协议,发送大文件不成问题。

FTP协议是个很简单的协议。你可以仔细看一下原理。然后再配合python的ftplib看。你会发现那些cmd就是FTP的命令

❷ python复杂操作ftp的库有哪些

Python提供内置操作ftp模块ftplib 能够完ftp登录、查看目录、修改目录、传文件等功能 般需求应该足

❸ Python 多线程编程问题

self.results[k]=fun(*args)这样的用法是错的,self.results本身就不是一个列表,就算是列表这样的写法也是错的,假设上述的res=[],那么存值的话,使用self.result.append(fun(*args)),我的代码测试是正常的,可以试试。
from threading import Thread
class pyThread(Thread):
def __init__(self,funs,args,res=[]):
Thread.__init__(self)
self.funs=funs
self.args=args
self.results=res
def run(self):
for k,fun in enumerate(self.funs):
args=self.args[k]
self.results.append(fun(*args))
def getResult(self):
return self.results
th=pyThread([lambda x:x+1,lambda x:x*2],[(2,),(3,)])
th.start()
print th.getResult()

❹ ftp可否实现多线程上传

没有FTP软件可以满足你的要求。因为FTP协议里没有给你多线程上传的办法。

❺ python 多进程和多线程配合

由于python的多线程中存在PIL锁,因此python的多线程不能利用多核,那么,由于现在的计算机是多核的,就不能充分利用计算机的多核资源。但是python中的多进程是可以跑在不同的cpu上的。因此,尝试了多进程+多线程的方式,来做一个任务。比如:从中科大的镜像源中下载多个rpm包。
#!/usr/bin/pythonimport reimport commandsimport timeimport multiprocessingimport threadingdef download_image(url):
print '*****the %s rpm begin to download *******' % url
commands.getoutput('wget %s' % url)def get_rpm_url_list(url):
commands.getoutput('wget %s' % url)
rpm_info_str = open('index.html').read()

regu_mate = '(?<=<a href=")(.*?)(?=">)'
rpm_list = re.findall(regu_mate, rpm_info_str)

rpm_url_list = [url + rpm_name for rpm_name in rpm_list] print 'the count of rpm list is: ', len(rpm_url_list) return rpm_url_
def multi_thread(rpm_url_list):
threads = [] # url = 'https://mirrors.ustc.e.cn/centos/7/os/x86_64/Packages/'
# rpm_url_list = get_rpm_url_list(url)
for index in range(len(rpm_url_list)): print 'rpm_url is:', rpm_url_list[index]
one_thread = threading.Thread(target=download_image, args=(rpm_url_list[index],))
threads.append(one_thread)

thread_num = 5 # set threading pool, you have put 4 threads in it
while 1:
count = min(thread_num, len(threads)) print '**********count*********', count ###25,25,...6707%25

res = [] for index in range(count):
x = threads.pop()
res.append(x) for thread_index in res:
thread_index.start() for j in res:
j.join() if not threads:
def multi_process(rpm_url_list):
# process num at the same time is 4
process = []
rpm_url_group_0 = []
rpm_url_group_1 = []
rpm_url_group_2 = []
rpm_url_group_3 = [] for index in range(len(rpm_url_list)): if index % 4 == 0:
rpm_url_group_0.append(rpm_url_list[index]) elif index % 4 == 1:
rpm_url_group_1.append(rpm_url_list[index]) elif index % 4 == 2:
rpm_url_group_2.append(rpm_url_list[index]) elif index % 4 == 3:
rpm_url_group_3.append(rpm_url_list[index])
rpm_url_groups = [rpm_url_group_0, rpm_url_group_1, rpm_url_group_2, rpm_url_group_3] for each_rpm_group in rpm_url_groups:
each_process = multiprocessing.Process(target = multi_thread, args = (each_rpm_group,))
process.append(each_process) for one_process in process:
one_process.start() for one_process in process:
one_process.join()# for each_url in rpm_url_list:# print '*****the %s rpm begin to download *******' %each_url## commands.getoutput('wget %s' %each_url)
def main():
url = 'https://mirrors.ustc.e.cn/centos/7/os/x86_64/Packages/'
url_paas = 'http://mirrors.ustc.e.cn/centos/7.3.1611/paas/x86_64/openshift-origin/'
url_paas2 ='http://mirrors.ustc.e.cn/fedora/development/26/Server/x86_64/os/Packages/u/'

start_time = time.time()
rpm_list = get_rpm_url_list(url_paas) print multi_process(rpm_list) # print multi_thread(rpm_list)
#print multi_process()
# print multi_thread(rpm_list)
# for index in range(len(rpm_list)):
# print 'rpm_url is:', rpm_list[index]
end_time = time.time() print 'the download time is:', end_time - start_timeprint main()123456789101112131415161718

代码的功能主要是这样的:
main()方法中调用get_rpm_url_list(base_url)方法,获取要下载的每个rpm包的具体的url地址。其中base_url即中科大基础的镜像源的地址,比如:http://mirrors.ustc.e.cn/centos/7.3.1611/paas/x86_64/openshift-origin/,这个地址下有几十个rpm包,get_rpm_url_list方法将每个rpm包的url地址拼出来并返回。
multi_process(rpm_url_list)启动多进程方法,在该方法中,会调用多线程方法。该方法启动4个多进程,将上面方法得到的rpm包的url地址进行分组,分成4组,然后每一个组中的rpm包再最后由不同的线程去执行。从而达到了多进程+多线程的配合使用。
代码还有需要改进的地方,比如多进程启动的进程个数和rpm包的url地址分组是硬编码,这个还需要改进,毕竟,不同的机器,适合同时启动的进程个数是不同的。

❻ python多线程老是报错。大神帮忙看看哈

你好,你具体的代码我没看,但单从报错来看,你的变量名写错了:
你定义的是
condition = threading.Condition()
但你第10行引用的是
conditon
少了一个字母i

❼ FTP服务器可以使用多线程吗

可以的,就好比可以同时使用多个匿名用户是一样的,只受你ftp最大连接数的限制,希望对你有帮助。

❽ python ftplib buffersize多大比较合理

没有矛盾埃只要你不一口气将所有文件都加载到内存里去。使用FTP协议,发送大文件不成问题。FTP协议是个很简单的协议。你可以仔细看一下原理。然后再配合python的ftplib看。你会发现那些cmd就是FTP的命令。

❾ python多线程中每个线程如果不加休眠时间就会只泡在一个线程上,这该如何处理谢谢

这是三个线程都在跑啊,只是并发的而已

❿ python 操作ftp 都有哪些库

Python提供了一个内置的操作ftp的模块ftplib,
能够完成ftp登录、查看目录、修改目录、上传文件等功能。
一般需求应该足够了。

阅读全文

与pythonftplib多线程相关的资料

热点内容
优信二手车解压后过户 浏览:63
Windows常用c编译器 浏览:780
关于改善国家网络安全的行政命令 浏览:835
安卓如何下载网易荒野pc服 浏览:656
javainetaddress 浏览:106
苹果4s固件下载完了怎么解压 浏览:1005
命令zpa 浏览:288
python编译器小程序 浏览:946
在app上看视频怎么光线调暗 浏览:542
可以中文解压的解压软件 浏览:595
安卓卸载组件应用怎么安装 浏览:915
使用面向对象编程的方式 浏览:342
程序员项目经理的年终总结范文 浏览:932
内衣的加密设计用来干嘛的 浏览:435
淮安数据加密 浏览:295
魔高一丈指标源码 浏览:984
松下php研究所 浏览:171
c回调java 浏览:403
梦幻端游长安地图互通源码 浏览:747
电脑本地文件如何上传服务器 浏览:315