簡體   English   中英

Python-如何正確讀取虛擬文件系統

[英]Python - How to properly read virtual file systems

我最近查看了適用於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

只是想我會展示一些有關如何使用虛擬文件系統的示例,以期簡化工作。 再次感謝!

fs提供了到不同文件系統的通用接口。 要利用它,您的程序需要使用該接口。 pyWebDav不使用該界面。 它使用os.path函數。

listdir()返回文件,目錄的列表 ,但是os.path.isdir()需要單個字符串。 它導致您看到的錯誤。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM