Some Awesome Python Libraries

Out of many reasons that make python awesome is its wide range of libraries and modules.
So if you are here either you already know Python is awesome !!! or you will, by the end of this list.

python-is-awesome-600x300

Here is a list of some of the best Python modules categorized in various categories –
Note: This is not an exhaustive list. Please comment if you think I have missed something important.

#1 Media

Youtube-dl is available as a Python module as well as a command-line program to download videos from YouTube.com and a few more sites. It is released to the public domain, which means you can modify it, redistribute it or use it however you like.

Pillow
Pillow is a more-friendly fork of PIL (Python Imaging Library), providing features like cutting/merging images, image enhancement, color transform, geometrical transform, etc.

MoviePy
MoviePy is a Python module for video editing, which can be used for basic operations (like cuts, concatenations, title insertions), video compositing, video processing, or to create advanced effects. It can read and write the most common video formats, including GIF.

VPython makes it easy to create navigable 3D displays and animations, even for those with limited programming experience. Because it is based on Python, it also has much to offer for experienced programmers and researchers.

 

#2 Web Scraping & Crawling

Scrapy is a fast high-level web crawling and web scraping framework used to crawl websites and extract structured data from their pages. It can be used for a wide range of purposes, from data mining to monitoring and automated testing.

Mechanize is a browser automation module. It can automate tasks like login, website navigation, etc. 
Features include ftp:, http: and file: URL schemes, browser history, hyperlink and HTML form support, HTTP cookies, HTTP-EQUIV and Refresh, robots.txt, redirections, proxies, and Basic and Digest HTTP authentication.

Beautiful Soup provides a few simple methods and Pythonic idioms for navigating, searching, and modifying a parse tree: a toolkit for dissecting a document(HTML, XML, etc.) and extracting what you need.

Pywikibot

Pywikibot is a Python library and collection of tools that automate work on MediaWiki sites. Originally designed for Wikipedia, it is now used throughout the Wikimedia Foundation’s projects and on many other MediaWiki wikis.

#3 Networking and System Administration

Requests 
Requests is one of the most downloaded Python packages of all time, pulling in over 7,000,000 downloads every month. It allows you to send organic, grass-fed HTTP/1.1 requests, without the need for manual labor. There’s no need to manually add query strings to your URLs or to form-encode your POST data.

urllib3

urllib3 is a powerful, sanity-friendly HTTP client for Python. Much of the Python ecosystem already uses urllib3 and you should too. urllib3 brings many critical features that are missing from the Python standard libraries like proxy support, connection pooling, Client-side SSL/TLS verification, etc.

Paramiko is a Python (2.6+, 3.3+) implementation of the SSHv2 protocol, providing both client and server functionality.

Pexpect
Pexpect makes Python a better tool for controlling other applications. It is a pure Python module for spawning child applications, controlling them, and responding to expected patterns in their output.

Fabric provides a basic suite of operations for executing local or remote shell commands (normally or via sudo) and uploading/downloading files, as well as auxiliary functionality such as prompting the running user for input or aborting execution.

#4 File Processing

The shutil module includes high-level file operations such as copying, setting permissions, etc. It can be used for individual files as well as collections of file

PDFMiner is a tool for extracting information from PDF documents. Unlike other PDF-related tools, it focuses entirely on getting and analyzing text data. PDFMiner allows obtaining the exact location of texts in a page, as well as other information such as fonts or lines. It includes a PDF converter that can transform PDF files into other text formats (such as HTML).

unp is a command line tool that can unpack archives easily. It mainly acts as a wrapper around other shell tools that you can find on various POSIX systems.

Pygments. It is a generic syntax highlighter suitable for use in code hosting, forums, wikis or other applications that need to prettify source code.

#5 Education & Research

SymPy is a Python library for symbolic mathematics. It aims to become a full-featured computer algebra system (CAS) while keeping the code as simple as possible in order to be comprehensible and easily extensible. SymPy is written entirely in Python.
E.g – Finding roots of  x+ 2x+ 4x + 8 using sympy

>>> from sympy import *
>>> solve(Eq(x**3 + 2*x**2 + 4*x + 8, 0), x)
 [-2*I, 2*I, -2]

Pandas

Pandas is an open source, BSD-licensed library providing high-performance, easy-to-use data structures, and data analysis tools for the Python programming language
 

NumPy is the fundamental package for scientific computing with Python. Besides its obvious scientific uses, NumPy can also be used as an efficient multi-dimensional container of generic data.

NetworkX
NetworkX is a Python language software package for the creation, manipulation, and study of the structure, dynamics, and functions of complex networks.

So what is your favorite module? Tell us in comments.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

Powered by WordPress.com.

Up ↑

%d bloggers like this: