连接到远程计算机并压缩文件

时间:2019-06-05 08:10:41

标签: python regex python-3.x paramiko zipfile

我一直在尝试使用paramiko连接到远程计算机,此操作已成功完成,一旦完成,我将尝试导航到特定路径并使用特定的命名法将文件压缩。 为此,我尝试了sftp并导航到该文件夹​​,然后使用re.match对数据进行了排序。
现在,尝试压缩所需的文件,出现以下错误     对于z中的文件名: TypeError:“ NoneType”对象不可迭代

尝试过ssh.exec_command(“ commands”),不适用于“ cd”,给了我一个空列表。 如果可行,我可以使用其他Linux命令通过此功能执行。 使用sftp导航到文件系统。 引用以下链接相同的问题,但没有经过验证的答案: How do I change directories using Paramiko? How do I change directories using Paramiko?

import os
import sys
import shutil
import zipfile
import paramiko
import re
import subprocess

ssh = paramiko.SSHClient()
ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())
hostname = "Let It Be Some IP"
username = "Some UserName"
password = "SomePwd"
ssh.connect(hostname=hostname,username=username,password=password)

print("Connected: " , hostname)

#To Execute Commands into Linux Host Machine

ftp =  ssh.open_sftp()

#Get the required Directory For Operation

change_dir = ftp.chdir("/home/MyFolder")#Changes the Directory
new_dir = ftp.getcwd()#Gets Current working Directory
list_contents = ftp.listdir("/home/MyFolder")
print(list_contents)

#Using RE to get the Filename
for elements in list_contents:
    z = re.match("(new-\d)",elements)
    zf = zipfile.ZipFile('files.zip', mode='w')
    for file_names in z:
        zf.write(file_names)

预期的O / P:应压缩以new-开头的/ home / MyFolder文件 错误:对于z中的file_names: TypeError:“ NoneType”对象不可迭代

0 个答案:

没有答案