使用python ftp lib确定ftp文件是普通文件还是文件夹

时间:2012-05-21 18:23:24

标签: python ftp

我一直在研究一个简单的python程序,只需连接到我的nas并清理我的一些文件名。我正在使用python ftp lib连接到nas并做我的事情。

我只是想知道是否有人有一个很好的方法来检查服务器上的文件是否实际上是文件还是文件夹?

这就是我正在使用的:

try:
     ftp.cwd(line) 
     #If we got here then this "line" is a folder
     # Do my folder stuff
     ftp._ftp.cwd('..') #don't forget to go back after it worked
except ftplib.error_perm:
     #An exception! So this means we are dealing with a file
     #So do some file stuff
except:
     #Sometimes you just can't get in the folder for some reason
     falsepos = falsepos + 1

我可以查看目录列表的输出,但这在不同的平台上是不一样的,我正在尝试构建一些能够继续工作的东西,即使我出于某种原因取代我的鼻子。

我的代码中还有一个小错误。有时它仍然将文件夹视为常规文件...

您的意见?

(我正在使用Python 2.7)

1 个答案:

答案 0 :(得分:2)

我发现平台之间没有任何差异。这在哪些平台上不起作用?:

isFile = lambda e: e[0][0] != 'd'
for e in ftp.dir('.'):
  if isFile(e):
    foo(e)
  else:
    bar(e)