繁体   English   中英

如何等待文件上传(通过 ftp),然后将其删除?

[英]How can I wait for a file to be uploaded (via ftp), then delete it?

使用 Python,如何在删除文件之前等待文件上传(使用 ftp)?

uploadFile(ftp, filepath,namef)
# ............Here, I need to wait........
os.remove(filepath)

有任何想法吗?

您可以制作一个MD5校验和,然后上传,下载,比较MD5,如果有匹配项,则删除。
奖励:如果您的服务器支持MD5作为站点扩展,则无需下载,您只需向服务器索要MD5。

使用ftplib上传文件。 我提供的链接提供了许多使用FTP上传文件的出色示例。

使用os .remove删除本地文件。

使用由Randolpho链接的ftplib,您似乎要使用:

FTP.storbinary(command, file[, blocksize, callback])

在传输文件之前,请计算传输文件需要多少块(大小为blocksize 。您的回调函数可以计算调用它的次数,并且当计数器达到块数时,您便知道整个文件已被转移,您的回调函数便可以调用删除文件的函数。

您可以使用回调函数来检查上传进度

import ftplib

ftp_uploadcomplete = False
ftp_blocksize = 1024
size_written = 0
total_size = len(myimg)

def handle(block):
    global size_written
    global total_size
    global ftp_blocksize
    size_written = size_written + ftp_blocksize if size_written + ftp_blocksize < total_size else total_size
    percent_complete = size_written / total_size * 100
    if (size_written==total_size):
        ftp_uploadcomplete = True
    print("%s percent complete" %str(percent_complete))

myftp = ftplib.FTP('host','login','pw')
myftp.storbinary("STOR file.jpg", myimg, callback=handle, blocksize=ftp_blocksize)

while (ftp_uploadcomplete==False):
    time.sleep(1)

print("Upload Done!")

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM