Package: sharepoint
A Python library and command-line utility for gettting data out of SharePoint.If you’re more a Perl person, you might also want to trySharePerltopus.InstallationEither install the latest development fromgit:$ git clone git://github.com/ox-it/python-sharepoint.git
$ cd python-sharepoint
$ sudo python setup.py install… or, install the latest stable version usingpip:$ pip install sharepointYou will needlxml, which you can install using your
package manager orpip. Run one of the following if it’s not already
installed:$ sudo apt-get install python-lxml  # Debian, Ubuntu
$ sudo yum install python-lxml      # RedHat, Fedora
$ sudo pip install lxml             # pipUsageFirst, you need to create aSharePointSiteobject. We’ll assume you’re
using basic auth; if you’re not, you’ll need to create an appropriateurllib2
Openeryourself.from sharepoint import SharePointSite, basic_auth_opener

server_url = "http://sharepoint.example.org/"
site_url = server_url + "sites/foo/bar"

opener = basic_auth_opener(server_url, "username", "password")

site = SharePointSite(site_url, opener)ListsFirst, get a list of SharePoint lists available:for sp_list in site.lists:
    print sp_list.id, sp_list.meta['Title']You can look up lists by ID, or by name:# By ID, without braces
print site.lists['1EF5668C-0AB4-4020-98EF-26325E412C3C']
# By ID, with braces
print site.lists['{1EF5668C-0AB4-4020-98EF-26325E412C3C}']
# By name
print site.lists['ListName']Given a list, you can iterate over its rows:sp_list = site.lists['ListName']
for row in sp_list.rows:
    print row.id, row.FieldNamerowsis a list, which doesn’t help you if you want to find rows by their
SharePoint row IDs. For this use a list’srows_by_idattribute, which
contains a mapping from row ID to row.You can assign to fields as one would expect. Values will be coerced in
mostly-sensible ways. Once you’re done, you’ll want to sync your changes
using the list’ssave()method:sp_list = site.lists['ListName']

# Set both the URL and the text
sp_list.rows[5].Web_x0020_site = {'url': 'http://example.org/',
                                  'text': 'Example Website'}
# Set the URL; leave the text blank
sp_list.rows[6].Web_x0020_site = 'http://example.org/'
# Clear the field
sp_list.rows[7].Web_x0020_site = None

sp_list.save()Consult thedescriptor_set()methods insharepoint.lists.typesmodule
for more information about setting SharePoint list fields.Document librariesSupport for document libraries is limited, butSharePointListRowobjects do
support ais_file()method and anopen()method for accessing file
data.Command-line utilityHere’s how to get a list of lists from a SharePoint site:$ sharepoint lists -s http://sharepoint.example.org/sites/foo/bar \
             -u username -p passwordAnd here’s how to get one or more lists as XML:$ sharepoint exportlists -s http://sharepoint.example.org/sites/foo/bar \
             -l FirstListName -l "Second List Name" \
             -u username -p passwordYou can also specify a file containing username and password in the format
‘username:password’:$ sharepoint --credentials=path/to/credentials [...]If you want to manipulate SharePoint sites from a Python shell, use theshellcommand:$ sharepoint shell -s http://sharepoint.example.org/sites/foo/bar \
             -u username -p passwordOnce you’re in the Python shell, there will be asitevariable for the
site you specified. See above for things to do with your site.For help (including to see more options to configure the output, use-h:$ sharepoint -h