我是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))
感谢您提供任何帮助。
答案 0 :(得分:3)
不,os.walk不能以这种方式使用。
答案 1 :(得分:0)
这看起来像一个可用的步行功能。目前尚未经过我的测试。 https://pysftp.readthedocs.org/en/release_0.2.8/pysftp.html#pysftp.Connection.walktree