Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/339.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/19.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python:从FTP服务器检索多个文件_Python_Python 3.x_Ftp_Backup_Ftplib - Fatal编程技术网

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

Python:从FTP服务器检索多个文件,python,python-3.x,ftp,backup,ftplib,Python,Python 3.x,Ftp,Backup,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 == "": opsla

[]

在尝试使用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服务器上的位置,我想将它们复制/备份到电脑上的本地位置。

一个明显的问题是:

os.mkdir(maps[i])
第一关就行了。但稍后,您将创建上一个子文件夹的子文件夹。您必须使用完整路径,如
os.chdir

os.mkdir(opslagplaats + "\\" + backupnaam + "\\" + maps[i])
(或从循环末尾的子文件夹中弹出)


不管怎样,你为什么要重新发明轮子?使用现有解决方案进行递归下载:

.

“它告诉我”-它什么时候告诉你?什么行/语句?已经在第一个文件上了吗?或者更晚?也发布一个英文代码!另外,并非所有FTP服务器都接受反斜杠文件分隔符。您可以
导入posixpath
,并在任何平台上使用其
join
功能将其连接到规范路径分隔符。我认为您不需要翻译提示。。。但示例代码是否应该包含它们呢?一个去除多余积垢的模拟例子是理想的,但对你来说仍然是坏的。谢谢,现在它起作用了:我想小事情会带来很大的不同。