Python:从 FTP 服务器检索多个文件
Python: retrieving multiple files from an FTP server
[]
我在尝试使用 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 服务器上的位置,我想 copy/backup 它们到我 PC 上的本地位置。
一个明显的问题是:
os.mkdir(maps[i])
它将在第一次通过时起作用。但稍后,您将创建前一个子文件夹的子文件夹。您必须使用完整路径,例如 os.chdir
:
os.mkdir(opslagplaats + "\" + backupnaam + "\" + maps[i])
(或在循环结束时弹出子文件夹)。
不管怎样,你为什么要重新发明轮子?使用现有解决方案进行递归下载:
Downloading a directory tree with ftplib.
[
我在尝试使用 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 服务器上的位置,我想 copy/backup 它们到我 PC 上的本地位置。
一个明显的问题是:
os.mkdir(maps[i])
它将在第一次通过时起作用。但稍后,您将创建前一个子文件夹的子文件夹。您必须使用完整路径,例如 os.chdir
:
os.mkdir(opslagplaats + "\" + backupnaam + "\" + maps[i])
(或在循环结束时弹出子文件夹)。
不管怎样,你为什么要重新发明轮子?使用现有解决方案进行递归下载:
Downloading a directory tree with ftplib.