Загрузка CSV внутри .zip с помощью pysftp - PullRequest
0 голосов
/ 27 февраля 2020

Я пытаюсь загрузить файл .csv, хранящийся на FTP-сервере (протокол SFTP). Я использую Python в сочетании с библиотекой pysftp. На FTP-сервере файл CSV находится внутри ZIP-файла. Есть ли способ открыть zip и затем извлечь только файл csv внутри него?

Заранее спасибо,

import pysftp

cnopts = pysftp.CnOpts()
cnopts.hostkeys = None

# Make connection to sFTP
with pysftp.Connection(hostname,
                       username=sftp_username,
                       password=sftp_pw,
                       cnopts = cnopts
                       ) 
with pysftp.cd(download_directory):
        with sftp.cd('download_directory'):
            print(f'Downloading this file: {filename}')
            sftp.get(filename, preserve_mtime=True)
    sftp.close()

1 Ответ

0 голосов
/ 27 февраля 2020

Если у вас есть ssh доступ к удаленному хосту и вы достаточно знаете об удаленном пути к нужному zip-файлу и утилитам zip на этом хосте, вы можете использовать клиент s sh для удаленного запуска команды unzip и захватить его вывод. Здесь моя цель - машина linux, а zip-файл находится в пути к домашнему каталогу логина пользователя. Я могу использовать клиент paramiko s sh для выполнения работы

Хорошая идея - войти на удаленный сервер через s sh и попрактиковаться, чтобы увидеть, как выглядит структура пути

* 1005. *
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...