【问题标题】:Navigating between different folders on FTP server with Python使用 Python 在 FTP 服务器上的不同文件夹之间导航
【发布时间】:2015-01-28 23:13:59
【问题描述】:

我想使用 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 Failed to change directory.”。

我明白它为什么会在那里回溯,我可以通过启动两个不同的 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 会话中,而不是关闭它并打开一个新的。

干杯,

尼古拉

【问题讨论】:

  • 你试过了吗?您需要 2 个 FTP 连接来同时显示 2 个不同的目录的原因是 FTP 的工作原理。但是应该没有什么可以阻止您通过任一连接随意浏览目录树(允许您访问的部分)。

标签: python ftp navigation


【解决方案1】:

尝试在路径前加上反斜杠 - 它代表根目录:

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-10-08
    • 2015-07-07
    • 2021-07-08
    • 1970-01-01
    • 1970-01-01
    • 2020-03-30
    • 1970-01-01
    相关资源
    最近更新 更多