使用Python和ftplib检查FTP服务器上的对象是文件还是目录
使用Python和ftplib,我正在编写一个泛型函数来检查FTP目录中的项目是文件还是目录。由于使用MLSD功能可能不一定适用于所有服务器(我的一个用例并未提供此功能),因此我尝试通过这种有效但粗略的方式来确定它,方法是尝试将目录更改为对象,如果对象是文件,将引发异常,并相应地设置文件类型。
file_type = ''
try:
ftp.cwd(item_name)
file_type = 'dir'
ftp.cwd(cur_path)
except ftplib.error_perm:
file_type = 'file'
我已经在Internet和图书馆文档中搜索了其他方法,但是找不到在大多数情况下都可以使用的方法。
例如,使用该dir
函数,我可以检查第一个字符是否存在,'d'
并且可以确定第一个字符,但是进一步阅读表明,并非所有输出都具有相同的格式。
我在此方法中看到的最大缺陷是,如果我没有权限将目录更改为指定的文件夹;因此它将被视为文件。
有什么我想念的东西吗?