如何使用Python列出 FTP 服务器中的所有文件和目录?
FTP(文件传输协议)是计算机在跨计算机网络传输文件时遵循的一组规则。它是基于 TCP/IP 的协议。 FTP 允许客户端共享文件。 FTP 的安全性较低,因为文件以纯文本形式共享,没有在网络上进行任何加密。
可以使用Python使用其内置的 ftplib 模块从 FTP 服务器检索文件和目录列表。 ftplib 是一个预先安装的Python包,它使我们能够实现客户端 FTP 协议,为了使用它,我们只需像任何其他模块一样导入它。提取列表或目录的基本方法保持不变。
方法
- 导入模块
- 通过默认端口连接到主机
句法:
FTP(host=”, user=”, passwd=”, acct=”, timeout=None, source_address=None, *, encoding=’utf-8′)
- 使用 login()函数登录服务器
句法:
login(user=’anonymous’, passwd=”, acct=”)
- 相应地检索文件和目录。
- 关闭连接
方法 1 :使用 retrlines()
可以使用 retrlines()函数列出文件和目录。它返回文件名、修改时间、文件大小、所有者、文件类型、权限和模式。
句法:
retrlines(cmd, callback=None)
在此函数中传递“LIST”可检索文件和有关这些文件的信息。
程序:
Python3
from ftplib import FTP
ftp = FTP('ftp.us.debian.org')
ftp.login()
# changing directory
ftp.cwd('debian')
ftp.retrlines('LIST')
ftp.quit()
Python3
from ftplib import FTP
ftp = FTP('ftp.us.debian.org')
ftp.login()
# changing directory
ftp.cwd('debian')
ftp.retrlines('LIST *README*')
ftp.quit()
Python3
from ftplib import FTP
ftp = FTP('ftp.us.debian.org')
ftp.login()
# changing directory
ftp.cwd('debian')
ftp.dir()
ftp.quit()
Python3
from ftplib import FTP
ftp = FTP('ftp.us.debian.org')
ftp.login()
# changing directory
ftp.cwd('debian')
ftp.nlst()
ftp.quit()
输出:
此函数也可以是用户搜索文件或目录。可以在星号(*) 之间输入搜索查询。
句法:
ftp.retrlines(‘LIST *query*’)
程序:列出以“README”开头的文件名。
蟒蛇3
from ftplib import FTP
ftp = FTP('ftp.us.debian.org')
ftp.login()
# changing directory
ftp.cwd('debian')
ftp.retrlines('LIST *README*')
ftp.quit()
输出:
方法 2:使用 dir()
文件和目录可以用 dir() 列出。它返回文件名、修改时间、文件大小、所有者、文件类型、权限和模式。
句法:
ftp.dir()
程序:
蟒蛇3
from ftplib import FTP
ftp = FTP('ftp.us.debian.org')
ftp.login()
# changing directory
ftp.cwd('debian')
ftp.dir()
ftp.quit()
输出:
方法 3:使用 nlst()
文件和目录可以用 nlst() 列出。它返回列表类型的文件和目录的名称。
句法:
ftp.nlst()
程序:
蟒蛇3
from ftplib import FTP
ftp = FTP('ftp.us.debian.org')
ftp.login()
# changing directory
ftp.cwd('debian')
ftp.nlst()
ftp.quit()
输出: