【发布时间】:2016-08-22 01:23:35
【问题描述】:
使用 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'
我已经在互联网和图书馆文档中搜索了其他方法,但我找不到适用于大多数情况的方法。
例如使用dir 函数,我可以检查第一个字符是否为'd',这可能会确定它,但是进一步阅读表明并非所有输出都具有相同的格式。
我在这种方法中看到的最大缺陷是如果我没有将目录更改为指定文件夹的权限;因此它将被视为一个文件。
有什么我遗漏的或更清洁的方法吗?
【问题讨论】: