使用Python,如何将多个文件从FTP服务器上的子目录下载到本地计算机上的所需目录中?

机甲战士

使用python程序,我能够从FTP服务器(使用ftplibos库)将多个源文件下载到本地计算机。

这些源文件位于FTP服务器内部的特定目录中。

仅当我在本地计算机中提供了与FTP目录路径相同的目录路径时,才能下载源文件。

我可以下载C:\data\abc\transfer与远程目录相同的文件/data/abc/transfer代码坚持要求我提供相同的目录。

但我想将所有文件下载到所需目录中 C:\data_download\

下面是代码:

import ftplib
import os
from ftplib import FTP

Ftp_Server_host = '[email protected]'
Ftp_username ='qsdfg12'
Ftp_password = 'xxxxx'
Ftp_source_files_path = '/data/abc/transfer/'

ftp = FTP(Ftp_Server_host)
ftp.login(user=Ftp_username, passwd=Ftp_password)
local_path = 'C:\\data_download\\'
print("connected to remote server :" + Ftp_Server_host)
print()
ftp_clnt = ftp_ssh.open_sftp()
ftp_clnt.chdir(Ftp_source_files_path)
print("current directory of source file in remote server :" +ftp_clnt.getcwd())
print()

files_list = ftp.nlst(Ftp_source_files_path)
for file in files_list:
    print("local_path :" + local_path)
    local_fn = os.path.join(local_path)
    print(local_fn)
    print('Downloading files from remote server :' + file)
    local_file = open (local_fn, "wb")
    ftp.retrbinary("RETR " + file, local_file.write)
    local_file.close()
    print()

print("respective files got downloaded")
print()
ftp_clnt.close()

原始输出

预期产量

马丁·普里克里(Martin Prikryl)

您必须提供open功能的完整路径,而不仅仅是目录名称。

要组装完整的本地路径,请从返回的远程路径中获取文件名ftp.nlst,并将其与目标本地目录路径合并。

像这样:

local_fn = os.path.join(local_path, os.path.basename(file))

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

将Ubuntu服务器目录挂载到本地Ubuntu计算机上,可通过终端访问

使用SSH将文件从文件夹移动到远程服务器上的文件夹,而无需将文件下载到本地计算机

使用pysftp将文件从SFTP服务器下载到本地计算机时出现PermissionError

如何将远程Linux服务器日志文件拖到本地Windows计算机上

使用Web API和javascript将Excel文件从服务器下载到asp.net中的本地计算机

仅使用PowerShell将新文件从FTP目录下载到本地文件夹

将文件目录从Java服务器映射到本地计算机

从各个子目录递归地从FTP服务器下载文件

使用WebClient.UploadFileAsync时文件未上载到某些计算机上的FTP服务器

如何将多台计算机上的所有iTunes文件下载到新PC上?

如何将文件下载到与自己的计算机相同或相似的远程计算机上?

如何将文件从远程服务器复制到本地计算机?

如何将文件从远程服务器复制到本地计算机?

查找多个目录的所有WAV文件并将其从服务器复制到本地计算机

如何遍历目录中的子目录并计算python中子目录中的文件

如何将已安装的dbfs jar文件从databricks群集下载到本地计算机?

在 ftp 服务器中不递归地列出文件、目录、子文件和子目录的想法

如何仅压缩多个子目录下的文件?

SCP命令将目录从本地计算机移动到服务器

如何使用bash将文件从本地计算机复制到linux服务器

如何使用ssh将文件从远程服务器传输到本地计算机

如何从本地计算机上的双远程服务器复制文件

如何使用curl下载多个子目录中的多个文件?

为什么我无法使用 perl 将多个文件从 FTP 下载到本地目录?

如果远程副本在PowerShell中较新,如何将本地文件的使用期限与FTP服务器上的文件进行比较并下载

如何将文件从损坏的Windows 7计算机上下载到Ubuntu 12.04(台式机)计算机上?

如何使用nodejs将文件下载到本地计算机?

如何使用通过FTP的骆驼路由将所有文件从目录(包括子目录)移动到特定目录,而目标中没有子目录?

Linux-Scp,使用ssh将目录从服务器下载到本地