Python中怎么用sftp遍历文件夹和子文件夹

54次阅读
没有评论

共计 960 个字符,预计需要花费 3 分钟才能阅读完成。

要使用 sftp 遍历文件夹和子文件夹,可以使用 paramiko 库。以下是一个示例代码:

import paramiko

def traverse_folder(sftp, folder_path):
    files = sftp.listdir(folder_path)
    for file in files:
        file_path = folder_path + "/" + file
        try:
            sftp.chdir(file_path)
            traverse_folder(sftp, file_path)
        except:
            print(file_path) # 打印文件路径

def sftp_traverse(host, port, username, password, folder_path):
    transport = paramiko.Transport((host, port))
    transport.connect(username=username, password=password)
    
    sftp = transport.open_sftp()
    traverse_folder(sftp, folder_path)
    
    sftp.close()
    transport.close()

# 示例用法
host = "your_host"
port = 22
username = "your_username"
password = "your_password"
folder_path = "/path/to/your/folder"

sftp_traverse(host, port, username, password, folder_path)

在上述代码中,traverse_folder函数用于递归遍历文件夹和子文件夹。首先,它会列出当前文件夹下的所有文件和文件夹。然后,它会尝试进入每个子文件夹并递归调用自身。如果无法进入某个文件夹,说明该文件是一个文件而不是文件夹,然后打印出文件路径。

sftp_traverse函数用于建立与远程主机的连接,并调用 traverse_folder 函数进行遍历。

注意,此示例代码假设你已经安装了 paramiko 库,并且传入的参数有效。你需要将 your_hostyour_usernameyour_password/path/to/your/folder替换为实际的值。

丸趣 TV 网 – 提供最优质的资源集合!

正文完
 
丸趣
版权声明:本站原创文章,由 丸趣 2023-12-13发表,共计960字。
转载说明:除特殊说明外本站除技术相关以外文章皆由网络搜集发布,转载请注明出处。
评论(没有评论)