Site Packages#

To get all site-ackages:

$ python -m site
sys.path = [
    '/home/edewata/Projects/pki-dev/scripts',
    '/usr/lib/python27.zip',
    '/usr/lib64/python2.7',
    '/usr/lib64/python2.7/plat-linux2',
    '/usr/lib64/python2.7/lib-tk',
    '/usr/lib64/python2.7/lib-old',
    '/usr/lib64/python2.7/lib-dynload',
    '/usr/lib64/python2.7/site-packages',
    '/usr/lib64/python2.7/site-packages/gtk-2.0',
    '/usr/lib/python2.7/site-packages',
]
USER_BASE: '/root/.local' (exists)
USER_SITE: '/root/.local/lib/python2.7/site-packages' (doesn't exist)
ENABLE_USER_SITE: True

To get global site-packages:

$ python -c "import site; print(site.getsitepackages())"
['/usr/lib64/python2.7/site-packages', '/usr/lib/python2.7/site-packages', '/usr/lib/site-python']

To get Python library directory:

$ python -c "from distutils.sysconfig import get_python_lib; print(get_python_lib())"
/usr/lib/python2.7/site-packages

To get user site-packages:

$ python -m site --user-site
/root/.local/lib/python2.7/site-packages

python -c “from distutils.sysconfig import get_python_lib; print(get_python_lib())”

Regular Expression#

import re

pattern = re.compile(r'...')

while line in lines:

    match = pattern.match(line)

    if not match:
        continue

    value1 = match.group(1)
    value2 = match.group(2)

LXML#

To parse a file:

from lxml import etree
parser = etree.XMLParser(remove_blank_text=True)
document = etree.parse(filename, parser)

To find an element:

root = document.getroot()
elements = root.findall(xpath)

To set an attribute:

element.set(name, value)

To remove an attribute:

element.attrib.pop(name, None)

See also http://lxml.de/.

LDAP#

See Python LDAP.

See Also#