使用Python遍历FTP文件夹

3

我需要编写一个Python脚本,遍历FTP服务器上的文件夹。

对于ftpfolder中的文件:

#get it
#do something untoward with it

欢迎提供代码片段和不重复造轮子的建议。
1个回答

14

ftputil是你正在寻找的第三方模块:

ftputil是适用于Python编程语言的高级FTP客户端库。ftputil实现了访问FTP服务器的虚拟文件系统,即它可以为远程文件生成类似文件的对象。该库支持许多与os、os.path和shutil模块相似的功能。

例如,请注意这里的片段(链接):

# download some files from the login directory
host = ftputil.FTPHost('ftp.domain.com', 'user', 'secret')
names = host.listdir(host.curdir)
for name in names:
    if host.path.isfile(name):
        host.download(name, name, 'b')        # remote, local, binary mode

ftputil 是一个纯Python编写的非常稳定且在 pypi 上非常受欢迎的库(用户评分为9,我认为这是pypi评分系统中的最高分)。有什么不喜欢的呢?-)


谢谢,我一直在寻找类似的东西! - iElectric
@Alex,如果你提到为什么要使用ftputil而不是标准库的ftplib(例如易用性),那就太好了。 - tshepang
@Tshepang,我引用了关于它是高级别、虚拟文件系统和为远程文件生成类似文件对象的部分——当然,这些是使其具有吸引力的核心特征。无论一个人将这种吸引力看作是专注于易用性、纯粹的强大还是简洁,对我来说都是次要的——而且由于我的答案通常倾向于过长(除非我特别注意),我通常会避免那些让我感到“完全次要”的考虑和观察。 - Alex Martelli
1
@Alex,我理解你的观点,但我的主要关注点是你的回答让人感觉好像ftplib根本不存在,因为你甚至没有提到它。提及并不需要超过“stdlib有ftplib,但最好使用高级的ftputil...blah...” - tshepang

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接