使用python在远程目录和本地目录上的comapare文件

时间:2019-05-27 06:11:56

标签: python python-3.x sftp pysftp

我在此站点上获得了一个代码,可以从服务器从远程目录下载文件。现在,我想修改此代码,以便比较位于远程目录而非本地目录中的文件和列表。它列出了远程目录和本地目录之间不常见的文件。 这可能吗? 请帮忙。在此先感谢

testImplementation 'org.mockito:mockito-inline:2.8.47'

结果应该是存在于远程目录而非本地目录中的不常见文件。

2 个答案:

答案 0 :(得分:0)

如果要下载新文件以及不在本地系统上的文件,请使用rsync。您可以将本地目录与远程目录同步,如下所示:

rsync -a ~/dir1 username@remote_host:destination_directory

如何在python中使用它:

import subprocess

args = ["rsync", "-av", "-e", "ssh", "user@server:/tmp/", "/home/local/Desktop/"]
subprocess.call(args)

您可以通过--password-file开关,并且该开关必须指向包含ssh密码的文件,或者可以使用ssh密钥。

答案 1 :(得分:-1)

def getFilesList(path):
files = []
for (dirpath, dirnames, filenames) in os.walk(path):
    files.extend(filenames)
    return files
ServerFiles = getFilesList(Srverpath)
LocalFiles = getFilesList(Lclpath) 
fileDiffList = []
for file in ServerFiles: 
    if file in LocalFiles: 
        pass 
    else:
        fileDiffList.append(file) 

我们可以使用2个单独的列表来获取不常见的文件。 通过传递服务器路径和本地文件路径两次调用getFilesList方法。 最后,您的“ fileDiffList”将具有文件名