使用Python在FTP服务器上的不同文件夹之间导航

时间:2015-01-28 09:25:43

标签: python ftp navigation

我想使用Python的ftplib在同一个FTP会话中的同一台FTP服务器上的两个不同文件夹之间导航。

我写的基本脚本如下(分配了gbname和gffname):

ensembl = FTP('ftp.ensemblgenomes.org')
ensembl.login()

ensembl.cwd("pub/fungi/current/genbank/")
ensembl.retrbinary('RETR ' + gbname, open(gbname, 'wb').write)

ensembl.cwd("pub/fungi/current/gff/")
ensembl.retrbinary('RETR ' + gffname, open(gffname, 'wb').write)

ensembl.quit()

此脚本在第二个cwd上进行回溯,并显示以下错误“ftplib.error_perm:550无法更改目录。”。

我理解为什么它会在那里追溯,我可以通过启动两个不同的FTP会话来解决问题,如下所示:

ensemblgb = FTP('ftp.ensemblgenomes.org')
ensemblgb.login()
ensemblgb.cwd("pub/fungi/current/genbank/")
ensemblgb.retrbinary('RETR ' + gbname, open(gbname, 'wb').write)
ensemblgb.quit()

ensemblgff = FTP('ftp.ensemblgenomes.org')
ensemblgff.login()
ensemblgff.cwd("pub/fungi/current/gff/")
ensemblgff.retrbinary('RETR ' + gffname, open(gffname, 'wb').write)
ensemblegff.quit()

然而,我想知道,一旦我将目录更改为“pub / fungi / current / genbank /”,之后可能会将其更改为“pub / fungi / current / gff /”(可能会通过中间的根文件夹?)在同一个FTP会话中,没有关闭它并打开一个新的。

干杯,

尼古拉

1 个答案:

答案 0 :(得分:1)

尝试将反斜杠添加到路径前 - 它代表根目录:

ensemblgff.cwd("/pub/fungi/current/gff/")