2

私は、NASに接続してファイル名の一部をクリーンアップするだけの小さなpythonプログラムに取り組んでいます。私は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

ディレクトリ リストの出力を見ることができましたが、これは異なるプラットフォームで同じではなく、何らかの理由で NAS を交換しても動作し続けるものを構築しようとしています。

私のコードにも小さなバグがあります。フォルダーを通常のファイルと見なす場合があります...

あなたの意見は?

(私はPython 2.7を使用しています)

4

1 に答える 1

2

プラットフォーム間の違いは見つかりません。これが機能しないプラットフォームは?:

isFile = lambda e: e[0][0] != 'd'
for e in ftp.dir('.'):
  if isFile(e):
    foo(e)
  else:
    bar(e)
于 2012-05-21T19:05:28.210 に答える