微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

python ftp文件线程或多进程

如何解决python ftp文件线程或多进程

multiprocessing.Pool作为更高级别的界面,您可能会发现有用。

from multiprocessing import Pool
def upload(file): 
    ftp = ftplib.FTP('domainname.com')
    ftp.login("username","password")
    f = open(x,'rb')
    ftp.storbinary('STOR %s' %x, f)
    f.close()
    ftp.quit()


infiles = [file1,file2,file3.....filen]

pool = Pool(10) # submit 10 at once
pool.map(upload,infiles)

很好,因为map其行为类似于内置函数。对于调试,只需替换pool.map->即可map

解决方法

我们不断从数据库中生成数据文件,然后通过FTP’D将数据文件传输到其他位置。我们有一个极化器,它不断监视此文件夹,并在它看到文件后立即将其作为FTP的文件

当前,此过程是顺序的,当文件变大时,会有备份,这会导致严重的延迟。我想并行处理事情,即一次处理多个文件。我不确定线程​​/多处理以及它如何为我工作。

这是我的代码

import ftplib
ftp = ftplib.FTP('domainname.com')
ftp.login("username","password")
infiles = [file1,file2,file3.....filen]
for x in infiles:
    f = open(x,'rb')
    ftp.storbinary('STOR %s' %x,f)
    f.close()
ftp.quit()

我在想,因为这是I / O密集型工作,所以多处理是必经之路,有关如何进行的任何想法。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。