PyFilesystem - obsługa różnych systemów plików w Pythonie

PyFilesystem to warstwa abstrakcji pozwalająca operować na różnych systemach plików za pomocą jednego, zunifikowanego interfejsu. Obsługiwane są operacje na natywnym systemie plików, ale także na archiwach ZIP, sieciowym FTP, S3 i innych.

Na pypi pakiet dostępny jest pod nazwą fs. Repozytorium znajdziemy na githubie, a screencast na vimeo.

Biblioteka dostarcza zunifikowany interfejs, więc niezależnie od backendu kod będzie ten sam. Oto przykłady:

from fs.memoryfs import MemoryFS
from fs.osfs import OSFS
from fs.sftpfs import SFTPFS
from fs.zipfs import ZipFS


def do_some_operations(filesystem):
    print(filesystem)
    for element in filesystem.listdir():
        print(element, filesystem.isfile(element), filesystem.isdir(element), filesystem.getsize(element))
    print()

do_some_operations(ZipFS('source.zip'))
do_some_operations(OSFS('/tmp'))
do_some_operations(MemoryFS())
do_some_operations(SFTPFS('HOST', username='some_user', password='some_password'))

Oczywiście interfejs jest większy - wliczając w to odczyt/zapis.

RkBlog

Podstawy Pythona, 1 November 2015

Comment article
Comment article RkBlog main page Search RSS Contact