хранить имена файлов, присутствующих на SFTP-сервере, в списке - PullRequest
1 голос
/ 28 мая 2019

Я получил код для загрузки файлов на 5 дней старше с SFTP-сервера.Но вместо того, чтобы скачивать файлы, я хочу сохранить имена файлов на 5 дней старше в списке.Пожалуйста, помогите мне изменить код.Заранее спасибо

Код, который я сейчас использую (на основе Загрузка файлов с SFTP-сервера старше 5 дней с использованием Python )

import time

def get_r_portable(sftp, remotedir, localdir, preserve_mtime=False):
    for entry in sftp.listdir_attr(remotedir):
        remotepath = remotedir + "/" + entry.filename
        localpath = os.path.join(localdir, entry.filename)
        mode = entry.st_mode
        if S_ISDIR(mode):
            try:
                os.mkdir(localpath)
            except OSError:     
                pass
            get_r_portable(sftp, remotepath, localpath, preserve_mtime)
        elif S_ISREG(mode):
            if (time.time() - entry.st_mtime) // (24 * 3600) >= 5:
                sftp.get(remotepath, localpath, preserve_mtime=preserve_mtime)

1 Ответ

1 голос
/ 28 мая 2019

вместо использования sftp.get для загрузки файлов, я просто добавляю их путь в список и возвращаю его в конце

import time

def get_r_portable(sftp, remotedir):
    result = []
    for entry in sftp.listdir_attr(remotedir):
        remotepath = remotedir + "/" + entry.filename
        mode = entry.st_mode
        if S_ISDIR(mode):
            result += get_r_portable(sftp, remotepath)
        elif S_ISREG(mode):
            if (time.time() - entry.st_mtime) // (24 * 3600) >= 5:
                result.append(entry.filename)
    return result
...