Getting Started
===============
PyFilesystem is a Python-only module and can be installed from source or with `pip `_. PyFilesystem works on Linux, Mac and OSX.
Installing
----------
To install with pip, use the following::
pip install fs
Or to upgrade to the most recent version::
pip install fs --upgrade
You can also install the cutting edge release by checking out the source via SVN::
svn checkout http://pyfilesystem.googlecode.com/svn/trunk/ pyfilesystem-read-only
cd pyfilesystem-read-only
python setup.py install
Whichever method you use, you should now have the `fs` module on your path (version number may vary)::
>>> import fs
>>> fs.__version__
'0.5.0'
You should also have the command line applications installed. If you enter the following in the command line, you should see a tree display of the current working directory::
fstree -l 2
Because the command line utilities use PyFilesystem, they also work with any of the supported filesystems. For example::
fstree ftp://ftp.mozilla.org -l 2
See :doc:`commands` for more information on the command line applications.
Prerequisites
-------------
PyFilesystem requires at least **Python 2.6**. There are a few other dependencies if you want to use some of the more advanced filesystem interfaces, but for basic use all that is needed is the Python standard library.
* Boto (required for :mod:`fs.s3fs`) http://code.google.com/p/boto/
* Paramiko (required for :class:`fs.ftpfs.FTPFS`) http://www.lag.net/paramiko/
* wxPython (required for :mod:`fs.browsewin`) http://www.wxpython.org/
Quick Examples
--------------
Before you dive in to the API documentation, here are a few interesting things you can do with PyFilesystem.
The following will list all the files in your home directory::
>>> from fs.osfs import OSFS
>>> home_fs = OSFS('~/') # 'c:\Users\' on Windows
>>> home_fs.listdir()
Here's how to browse your home folder with a graphical interface::
>>> home_fs.browse()
This will display the total number of bytes store in '.py' files your home directory::
>>> sum(home_fs.getsize(f) for f in home_fs.walkfiles(wildcard='*.py'))