使用Python将文件从一个FTP位置传输到另一个位置

问题描述:

我正在尝试执行任务以在两个不同的FTP位置之间传输文件。简单的目标是,我希望使用Python脚本在过去几个小时内从FTP位置A到FTP位置B的特定文件类型。使用Python将文件从一个FTP位置传输到另一个位置

我正在使用ftplib来执行任务,并将以下代码放在一起。

到目前为止,文件传输对from_sock变量中定义的单个文件工作正常,但是当我想循环访问在过去2小时内创建的所有文件并复制它们时,我遇到了路障。所以我写的脚本基本上是复制单个文件,但我想我不想移动所有具有特定扩展示例* .jpg的文件,这些文件是在过去2小时内创建的。我厌倦了使用MDTM来查找文件修改时间,但我无法以正确的方式实施。

任何帮助,这是非常感谢。下面是当前的代码:

import ftplib 
srcFTP = ftplib.FTP("test.com", "username", "pass") 
srcFTP.cwd("/somefolder") 
desFTP = ftplib.FTP("test2.com", "username", "pass") 
desFTP.cwd("/") 
from_Sock = srcFTP.transfercmd("RETR Test1.text") 
to_Sock = desFTP.transfercmd("STOR test1.text") 
state = 0 
while 1: 
    block = from_Sock.recv(1024) 
    if len(block) == 0: 
     break 
    state += len(block) 
    while len(block) > 0: 
     sentlen = to_Sock.send(block) 
     block = block[sentlen:]  
print state, "Total Bytes Transferred" 
from_Sock.close() 
to_Sock.close() 
srcFTP.quit() 
desFTP.quit() 

感谢, DD

+0

任何Python专家请帮助我... – daaredevill 2014-10-04 05:59:38

+0

有人可以帮助我这个请求。任何帮助,这是非常感谢。 – daaredevill 2014-10-06 23:57:22

+0

还在等待这里的一些帮助。非常感谢任何人都可以帮助我。 – daaredevill 2014-10-10 19:52:31

这里很短的代码,所采取的路径和上传的所有文件通过FTP的.jpg的延伸。它不完全是你想要的,但我偶然发现你的答案,这可能会帮助你。

import os 
from ftplib import FTP 

def ftpPush(filepathSource, filename, filepathDestination): 
    ftp = FTP(IP, username, password) 
    ftp.cwd(filepathDestination) 

    ftp.storlines("STOR "+filename, open(filepathSource+filename, 'r')) 
    ftp.quit() 

path = '/some/path/' 
for fileName in os.listdir(path): 
    if fileName.endswith(".jpg"): 
     ftpPush(filepathSource=path, filename=fileName, filepathDestination='/some/destination/') 

使用this example可以在FTP服务器上检查文件的创建时间。

fileName = "nameOfFile.txt" 
modifiedTime = ftp.sendcmd('MDTM ' + fileName) 
# successful response: '213 20120222090254' 
ftp.quit() 

现在你只需要检查时,已被修改的文件,下载它,如果它是下面你祝愿阈值,然后将它们上传到另一台计算机。