问题在于:
我有一个本地目录'/local'和一个远程FTP目录'/remote'充满了子目录和文件。我想检查'/remote'的子目录中是否有新文件。如果有,则将它们复制到'/local'。在
问题是:
我使用的策略正确吗?这是不是太过分了,有没有比Python更快的方法呢? 免责声明:我是一个python00b正在努力学习。所以要温柔。。。=) 这就是我尝试过的:
在/local及其子目录中创建所有文件的列表。在
LocalFiles=[]
for path, subdirs, files in os.walk(localdir):
for name in files:
LocalFiles.append(name)
做一些ftplib魔术,使用ftpwalk()并将其结果复制到表单列表中:
^{pr2}$所以我有对应于每个文件的目录。 然后通过比较文件名列表来查看缺少哪些文件
missing_files= list(set(RemoteFiles[1]) - set(LocalFiles))
一旦我找到他们的名字,我就试着找到那个名字对应的目录
for i in range(0,len(missing_files)):
theindex=RemoteFiles[1].index(missing_files[i])
这样我就可以建立丢失文件及其目录的列表
MissingDirNFiles.append([remotefiles[0][theindex],remotefiles[1][theindex]])
所以我可以用ftp.retrbinary文件。 这是一个合理的策略吗?任何提示、评论和建议都是非常感谢的[特别是对于大量的文件]。在
如果您同时获得本地和远程FTP目录的修改时间并将其存储在数据库中,则可以删除对新文件或修改文件的搜索。这将大大加快同步过程。在
相关问题 更多 >
编程相关推荐