The Python Standard Library | Python 3 Standard Library Tutorial With Examples

Python Tutorials

The Python Standard Library | Python 3 Standard Library Tutorial With Examples. Here in this blog post Coding compiler sharing a Python 3 standard library tutorial for beginners. This Python tutorial is for beginners and intermediate learners who are looking to master in Python programming. Experienced Python programmers also can refer this tutorial to brush-up their Python 3 programming skills. Let’s start learning Python 3.

Python Standard Library Overview

Let’s start learning about Python standard library and it’s sub modules.

The Python Standard Library

1. Operating System Interface 7. Internet access
2. File Wildcards 8. Date and Time
3. Command line parameters 9. Data Compression
4. Error Output Redirection 10. Performance Measurement
5. String Regular Matches 11. Quality Control
6. Mathematics 12. Swiss Army Knife

1. Operating System Interface

The os module provides many functions that interact with the operating system:

>>> import  os 
>>> os . getcwd ()       # Return the current working directory 
'C:\\Python35' 
>>> os . chdir ( '/server/accesslogs' )    # Change current working directory 
>>> os . System ( 'mkdir today' )    # Run the command mkdir in the system shell 
0

It should be used rather than style . This ensures that os.open(), which varies with the operating system , does not override the built-in function open() .import osfrom os import *

The built-in dir() and help() functions are useful when using large modules like os :

>>> import  os 
>>> dir ( os ) 
<returns a list of all module functions> 
>>> help ( os ) 
<returns an extensive manual page created from the module's docstrings>

For everyday file and directory management tasks, the shutil module provides an easy-to-use, high-level interface:

>>> import  shutil 
>>> shutil . copyfile ( 'data.db' ,  'archive.db' ) 
'archive.db' 
>>> shutil . move ( '/build/executables' ,  'installdir' ) 
'installdir'
Related Article: Python Interpreter Tutorial

2. File Wildcards

The glob module provides a function for generating a list of files from a directory wildcard search:

>>> import  glob 
>>> glob . glob ( '*.py' ) 
['primes.py', 'random.py', 'quote.py']
Related Articles: Learn Python In One Day

3. Command line parameters

Common tool scripts often call command line arguments. These command line arguments are stored as linked lists in the argv variable of the sys module . For example execute the command line you may get the following result:python demo.py one two three

>>> import  sys 
>>> print ( sys . argv ) 
['demo.py', 'one', 'two', 'three']

The getopt module uses the Unix getopt() function to handle sys.argv . More complex command line processing is provided by the argparse module.

Related Article: Python For Machine Learning

4. Error Output Redirection and Program Termination

Sys also has stdin , stdout, and stderr attributes that can be used to display warning and error messages even when stdout is redirected:

>>> sys . stderr . write ( 'Warning, log file not found starting a new one \n ' ) 
Warning, log file not found starting a new one

Most of the script’s direct termination is used sys.exit().

Related Article: Python Data Structures

5. String Regular Matches

The re module provides regular expression tools for advanced string processing. For complex matching and processing, regular expressions provide a simple, optimized solution:

>>> import  re 
>>> re . findall ( r '\bf[az]*' ,  'which foot or hand fell fastest' ) 
['foot', 'fell', 'fastest'] 
>>> re . sub ( r '(\b[az]+) \1' ,  r '\1' ,  'cat in the hat' ) 
'cat in the hat'

String methods are best used for simple operations because they are easy to read and easy to debug:

>>> 'tea for too' . replace ( 'too' ,  'two' ) 
'tea for two'
Related Article: Python Modules

6. Mathematics

The math module provides access to the underlying C library for floating-point operations:

>>> import  math 
>>> math . cos ( math . pi  /  4.0 ) 
0.70710678118654757 
>>> math . log ( 1024 ,  2 ) 
10.0

Random provides a tool for generating random numbers:

>>> import  random 
>>> random . choice ([ 'apple' ,  'pear' ,  'banana' ]) 
'apple' 
>>> random . sample ( range ( 100 ),  10 )    # sampling without replacement 
[30, 83, 16, 4, 8, 81, 41, 50, 18, 33] 
>>> random . random ()     # random float 
0.17970987693706186 
>>> random .Randrange ( 6 )     # random integer chosen from range(6) 
4

The SciPy < http://scipy.org > project provides many numerical calculation modules.

Related Article: Python Input and Output

7. Internet access

There are several modules for accessing the Internet and handling network communication protocols. The simplest of these two are urllib.request for handling data received from urls and smtplib for sending emails :

>>> from  urllib.request  import  urlopen 
>>> for  line  in  urlopen ( 'http://tycho.usno.navy.mil/cgi-bin/timer.pl' ): 
...     line  =  line . decode ( ' Utf-8' )   # Decoding the binary data to text. 
...     if  'EST'  in  line  or  'EDT'  in  line :   # look for Eastern Time 
...         print ( line )

<BR>Nov. 25, 09:43:32 PM EST

>>> import  smtplib 
>>> server  =  smtplib . SMTP ( 'localhost' ) 
>>> server . sendmail ( '[email protected]' ,  '[email protected]' , 
... """To: jcaesar @example.org 
... From: [email protected] 
...
... Beware the Ides of March. 
... """" ) 
>>> server . quit ()

(Note that the second example requires running a mail server on localhost.)

Related Article: Python Errors and Exceptions

8. Date and Time

The datetime module provides both simple and complex methods for date and time processing. While supporting date and time algorithms, the implementation focuses on more efficient processing and formatting of the output. The module also supports time zone processing.

>>> # dates are easily constructed and formatted 
>>> from  datetime  import  date 
>>> now  =  date . today () 
>>> now 
datetime.date(2003, 12, 2) 
>>> now . strftime ( "% M- %d -%y. %d %b %Y is a %A on the %d day of %B." ) 
'12-02-03. 02 Dec 2003 is a Tuesday on the 02 day of December.'

>>> # a dates Support Calendar Arithmetic 
>>> Birthday  =  DATE ( 1964 ,  7 ,  31 ) 
>>> Age  =  now  -  Birthday 
>>> Age . Days 
14368
Related Article: Python Classes and Objects

9. Data Compression

The following modules directly support common data packaging and compression formats: zlib , gzipbz2 , lzma , zipfile, and tarfile .

>>> import  zlib 
>>> s  =  b 'witch which has which witches wrist watch' 
>>> len ( s ) 
41 
>>> t  =  zlib . compress ( s ) 
>>> len ( t ) 
37 
>>> Zlib . decompress ( t ) 
b'witch which has which witches wrist watch' 
>>> zlib . crc32 ( s ) 
226805979

10. Performance Measurement

Some users are interested in understanding the performance differences between different approaches to the same problem. Python provides a measurement tool that provides direct answers to these questions.

For example, using tuples for encapsulation and unpacking to swap elements looks much more enticing than using traditional methods. Timeit proves that the latter is faster:

>>> from  timeit  import  Timer 
>>> Timer ( 't=a; a=b; b=t' ,  'a=1; b=2' ) . timeit () 
0.57535828626024577 
>>> Timer ( 'a,b = b,a' ,  'a=1; b=2' ) . timeit () 
0.54962537085770791

With respect to the fine- grainedness of timeit , the profile and pstats modules provide time measurement tools for larger code blocks.

11. Quality Control

One of the ways to develop high quality software is to develop test code for each function and often test it during development.

The doctest module provides a tool to scan the module and perform tests based on the docstrings embedded in the program. Testing the construct is like simply cutting and pasting its output into a docstring. 

Through the user-provided example, it has developed a document that allows the doctest module to confirm that the results of the code are consistent with the document:

Def  average ( values ): 
    """Computes the arithmetic mean of a list of numbers.

    >>> print(average([20, 30, 70])) 
    40.0 
    """ 
    return  sum ( values )  /  len ( values )

Import  doctest 
doctest . testmod ()    # auto validate the embedded tests

The unittest module is not as easy to use as the doctest module, but it can provide a more comprehensive set of tests in a separate file:

Import  unittest

Class  TestStatisticalFunctions ( unittest . TestCase ):

    Def  test_average ( self ): 
        self . assertEqual ( average ([ 20 ,  30 ,  70 ]),  40.0 ) 
        self . assertEqual ( round ( average ([ 1 ,  5 ,  7 ]),  1 ),  4.3 ) 
        with  self . assertRaises ( ZeroDivisionError ): 
            average ([]) 
        with  self . assertRaises (TypeError ): 
            average ( 20 ,  30 ,  70 )

Unittest . main ()  # Calling from the command line invokes all tests

12. Swiss Army Knife

Python presents the philosophy of the “Swiss Army Knife”. This can be best demonstrated by the advanced and robust features of its larger package. Columns such as:

  • The xmlrpc.client and xmlrpc.server modules make remote procedure calls a breeze. Although the module has such a name, users do not need to have knowledge of XML or process XML.

  • The email package is a library for managing email messages, including MIME and other RFC2822 based information files.

    Unlike the smtplib and poplib modules that actually send and receive information , the email package contains a complete set of tools for constructing or parsing complex message structures (including attachments) and implementing Internet encoding and header protocols.

  • The xml.dom and xml.sax packages provide powerful support for popular information exchange formats. Similarly, the csv module supports direct read and write in the common database format.

    Taken together, these modules and packages greatly simplify data exchange between Python applications and other tools.

  • Internationalization is supported by the gettext , locale, and codecs packages.

Related Articles: 

Python Interview Questions

Python Programming Interview Questions

Leave a Reply

Your email address will not be published. Required fields are marked *