Coder Social home page Coder Social logo

python-sharepoint's Introduction

python-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 try SharePerltopus.

Installation

Either install the latest development from git:

$ git clone git://github.com/ox-it/python-sharepoint.git
$ cd python-sharepoint
$ sudo python setup.py install

... or, install the latest stable version using pip:

$ pip install sharepoint

You will need lxml, which you can install using your package manager or pip. 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             # pip

Usage

First, you need to create a SharePointSite object. We'll assume you're using basic auth; if you're not, you'll need to create an appropriate urllib2 Opener yourself.

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)

Lists

First, 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.FieldName

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's save() 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 the descriptor_set() methods in sharepoint.lists.types module for more information about setting SharePoint list fields.

Document libraries

Support for document libraries is limited, but SharePointListRow objects do support a is_file() method and an open() method for accessing file data.

Command-line utility

Here'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 password

And 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 password

You 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 the shell command:

$ sharepoint shell -s http://sharepoint.example.org/sites/foo/bar \
             -u username -p password

Once you're in the Python shell, there will be a site variable 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

python-sharepoint's People

Contributors

alexdutton avatar seawaywen avatar

Watchers

 avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.