[英]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.