Python:从 FTP 服务器检索多个文件

标签 python python-3.x ftp backup ftplib

[ enter image description here ]

尝试使用 Python 脚本从 FTP 服务器获取一些文件时,我遇到了一些小问题。我已经搜索过这个,但没有成功。这是我所知道的:

session2.cwd("/archive")
maps = session2.nlst()
opslagplaats = input("waar wil je de backup opslaan?")
backupnaam = input("hoe wil je de backup noemen?")
if opslagplaats == "":
    opslagplaats = "C:\\backups eindwerk"
os.chdir(opslagplaats)
os.mkdir(backupnaam)
os.chdir(opslagplaats + "\\" + backupnaam)
for i in range(len(maps)):
    session2.cwd("/archive/" + maps[i])
    os.mkdir(maps[i])
    os.chdir(opslagplaats + "\\" + backupnaam + "\\" + maps[i])
    files = session2.nlst()
    for j in range(len(files)):
        file = open(files[j], "wb")
        session2.retrbinary("RETR " + files[j], file.write)

当我尝试运行此代码时,它告诉我无法在 C:\\backups eindwerk\\omglld\\MonMay81345092017196 中找到给定文件。

这就是文件在 FTP 服务器上的位置,我想将它们复制/备份到我 PC 上的本地位置。

最佳答案

一个明显的问题是:

os.mkdir(maps[i])

它将在第一次通过时起作用。但稍后,您将创建前一个子文件夹的子文件夹。您必须使用完整路径,例如 os.chdir:

os.mkdir(opslagplaats + "\\" + backupnaam + "\\" + maps[i])

(或在循环结束时弹出子文件夹)。


无论如何,你为什么要重新发明轮子?使用现有解决方案进行递归下载:
Downloading a directory tree with ftplib .

关于Python:从 FTP 服务器检索多个文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43852838/

相关文章:

python - python : 语法错误

javascript - PHP FTP 上传 BLOB TEMP 图像

c++ - FTP 如何删除一个文件夹?

c++ - QT QNetworkAccessManager 从 ftp 服务器下载文件不工作

python - "'浮点' object cannot be interpreted as an integer"电影错误

python - 如何在 Python Matplotlib 中绘制具有不同时间间隔的两个数据集并让它们共享轴

javascript - D3 仅加载一个单元格的数据

Python:写入 csv 时连接和格式化字符串/ float

python-3.x - 如何在Python上使用rawpy读取图片的RGB值

python - Scraper 无法从下一页获取名称