2014-09-30 2 views
1

Я пытаюсь выполнить задачу для передачи файлов между двумя разными FTP-адресами. И простая цель заключается в том, что я хотел бы указать конкретный тип файла из FTP-адреса A в FTP-местоположение B всего за несколько часов, используя скрипт Python.Перенос файлов из одного места FTP в другой с помощью Python

Я использую 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

+0

Может кто-нибудь, пожалуйста, помогите мне с этим запросом. Любая помощь по этому поводу очень ценится. – daaredevill

+0

Все еще ждут здесь некоторой помощи. Очень ценим, может ли кто-нибудь помочь мне в этом. – daaredevill

ответ

1

Вот короткий код, который принимает путь и загружает каждый файл с расширением .jpg через FTP. Это не совсем то, что вы хотите, но я наткнулся на ваш ответ, и это может помочь вам на вашем пути.

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/') 

Время создания файла можно проверить на сервере FTP с помощью this example.

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

Теперь вам просто нужно проверить, если файл, который был изменен, загрузить его, если он ниже вы хотели за порог, а затем загрузить их на другой компьютер.