2016-10-04 7 views
0

Я не могу извлечь zip-файл в python в папку назначения (сервера) с моего локального хоста. При извлечении с использованием z.extract(name,"/destination/") он не может найти папку назначения, поскольку пытается найти локальную папку назначения вместо сервера.Невозможно извлечь zip в python в папку назначения (сервер) с моего локального узла

transport = paramiko.Transport((destinationIP)) 
    transport.connect(username = destinationuserName, password = destinationPassword) 
    sftp = paramiko.SFTPClient.from_transport(transport) 

    fh = sftp.open('/destination/xxx.zip', 'rb') 
    z = zipfile.ZipFile(fh) 
    for name in z.namelist(): 
     print name 
     z.extract(name,"/destination/") 
    fh.close() 
    sftp.close() 
+0

Любая причина, по которой вы не используете scp и tar? –

+0

no reason, any idea d-coder –

+0

Я предполагаю, что вы запускаете этот скрипт на локальном хосте .. если да, то .. ДА ваш скрипт будет искать только ваш локальный .. –

ответ

1

Похоже, вы хотите, чтобы извлеченные файлы отображались на сервере, даже если вы извлекаете их на клиентской машине. К сожалению, это не собирается летать, поскольку метод zipfile.extract предполагает, что его вторым аргументом является локальный путь.

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

Если вы сделать имеют доступ к оболочке сервера, то рекомендуется использовать что-то вроде fabric или paramiko выполнить необходимые команды на сервере системы.

 Смежные вопросы

  • Нет связанных вопросов^_^