2

アクセスしている ftp サイトは MLSD をサポートしていません。nlst を使用してファイルのリストを取得できますが、nlst() は、dir() が表示する詳細ではなく、ファイルの名前を返すだけです。

ftpObj.dir()

drwxr-xr-x   2 ada      storage         0 Nov 12 00:38 Deltas
drwxr-xr-x   2 ada      storage         0 Nov 10 22:38 History

だから、私は回り道を試みました(別の投稿で推奨されているように):

data=[]
print(data.__len__())
data.append(ftpObj.dir())
print(data.__len__())

上記の最初の印刷の出力は 0 で、2 番目の印刷の出力は 1 です。ただし、データ内の情報にアクセスできません。

for line in data:
    print(line)

出力は

None

上のデータの中身を確認するにはどうすればよいですか?

4

1 に答える 1

2

への最後の引数として data.append を渡しますFTP.dir()

print(data.__len__())
ftpObj.dir(data.append)
print(data.__len__())

FTP.dir(引数[, ...])

LIST コマンドによって返されるディレクトリ リストを作成し、標準出力に出力します。オプションの引数は、一覧表示するディレクトリです (デフォルトは現在のサーバー ディレクトリです)。複数の引数を使用して、非標準オプションを LIST コマンドに渡すことができます。最後の引数が関数の場合、retrlines() の場合と同様にコールバック関数として使用されます。デフォルトでは sys.stdout に出力されます。このメソッドは None を返します。

于 2013-11-12T02:11:14.887 に答える