是否可以通过SSH使用os.walk?

时间:2011-01-12 18:21:04

标签: python python-3.x ssh

我是Python的新手,请原谅我,如果这是基本的,我已经搜索但找不到答案。我正在尝试将Perl脚本转换为Python(3.x),它连接到远程服务器并将给定目录中的文件复制到本地计算机。转移的完整性至关重要,并且内置了几个步骤以确保完整和准确的转移。

第一步是获取要传递给rsync的文件的完整列表。 Perl脚本具有以下行来完成此任务:

@dir_list = `ssh user@host 'find $remote_dir -type f -exec /bin/dirname {} \\;'`;
@file_list = `ssh user@host 'find $remote_dir -type f -exec /bin/basename {} \\;'`;

然后join编辑两个列表以创建$ full_list。

我想打开一个并使用ssh来获取信息,而不是打开两个单独的os.walk个实例:

for remdirname, remdirnames, remfilesnames in os.walk(remotedir):
    for remfilename in remfilesnames:
        remfulllist.append(os.path.join(remdirname, remfilename))

感谢您提供任何帮助。

2 个答案:

答案 0 :(得分:3)

不,os.walk不能以这种方式使用。

答案 1 :(得分:0)

这看起来像一个可用的步行功能。目前尚未经过我的测试。 https://pysftp.readthedocs.org/en/release_0.2.8/pysftp.html#pysftp.Connection.walktree