0

最近、Python 用の仮想ファイル システム モジュール (http://packages.python.org/fs/) を調べたところ、適切に使用する方法について簡単な質問がありました。

次の行を使用して、FTP 仮想ファイル システムを作成しました。

from fs.ftpfs import FTPFS

FTP = FTPFS(host='127.0.0.1', user='test1', passwd='test1', acct='', timeout=60, port=21, dircache=True)

シンプルですよね?

ここで私の質問は、このファイル システム内で別の python スクリプトを読み取るにはどうすればよいかということです。たとえば、私は PyWebDav を使用しており、既定のディレクトリは "C:\WebDir" に設定されています。代わりに、作成したばかりの仮想ファイル システム内を検索するように設定するにはどうすればよいですか?

どんな助けでも大歓迎です、ありがとう!

編集:

これをpyWebDavの「ディレクトリ」にしようとしています:

from fs.ftpfs import FTPFS
ftpServer = FTPFS(host='127.0.0.1', user='test1', passwd='test1', acct='', timeout=60, port=21, dircache=True)
ftpServer = ftpServer.listdir(path='./', wildcard=None, full=True, absolute=True, dirs_only=False, files_only=False)
directory = ftpServer

実行した直後に、次のエラーが発生します。

Traceback (most recent call last):
  File "C:\Users\Dustin\Documents\ftpmirror\test.py", line 4, in <module>
    server.run()
  File "C:\Python27\lib\site-packages\pywebdav-0.9.4.1-py2.7.egg\DAVServer\server.py", line 369, in run
    handler=handler)
  File "C:\Python27\lib\site-packages\pywebdav-0.9.4.1-py2.7.egg\DAVServer\server.py", line 75, in runserver
    if not os.path.isdir(directory):
  File "C:\Python27\lib\genericpath.py", line 41, in isdir
    st = os.stat(s)
TypeError: coercing to Unicode: need string or buffer, list found

簡単にするために、仮想ファイルシステムの使用方法の例を示したいと思いました。再度、感謝します!

4

1 に答える 1

0

fs異なるファイルシステムに共通のインターフェースを提供します。それを利用するには、プログラムでインターフェースを使用する必要があります。pyWebDavインターフェイスを使用しません。関数を使用しos.pathます。

listdir()ファイル、ディレクトリのリストを返しますがos.path.isdir()、単一の文字列が必要です。表示されるエラーにつながります。

于 2012-02-25T07:05:34.917 に答える