Lesser‑Known Python Standard Library Modules and Their Useful Functions
This article introduces several under‑utilized Python standard‑library modules—difflib, sched, binascii, tty, and weakref—explaining their key functions, typical use cases, and providing clear example code to help developers expand their toolkit.
Python's standard library contains over 200 modules, many of which are underutilized; this article highlights several lesser‑known modules—difflib, sched, binascii, tty, and weakref—explaining their key functions and providing example code.
1. difflib
difflib focuses on comparing data sets, especially strings. The most common functions include SequenceMatcher and get_close_matches .
SequenceMatcher
SequenceMatcher compares two strings and returns a similarity ratio via ratio() .
SequenceMatcher(None, string1, string2)Example:
from difflib import SequenceMatcher
phrase1 = "Tandrew loves Trees."
phrase2 = "Tandrew loves to mount Trees."
similarity = SequenceMatcher(None, phrase1, phrase2)
print(similarity.ratio())
# Output: 0.8163265306122449get_close_matches
get_close_matches returns the closest matches to a given word from a list of possibilities.
get_close_matches(word, possibilities, result_limit, min_similarity)Example:
from difflib import get_close_matches
word = 'Tandrew'
possibilities = ['Andrew', 'Teresa', 'Kairu', 'Janderson', 'Drew']
print(get_close_matches(word, possibilities))
# Output: ['Andrew']Other difflib utilities include unified_diff , Differ , and diff_bytes .
2. sched
sched provides a platform‑independent event scheduler, typically used together with the time module.
Creating a scheduler instance:
schedular_name = sched.scheduler(time.time, time.sleep)Key methods:
run() – executes scheduled events in order.
enterabs() – adds an event to the internal queue with parameters such as execution time, priority, function, arguments, and keyword arguments.
Example:
import sched, time
def event_notification(event_name):
print(event_name + " has started")
my_schedular = sched.scheduler(time.time, time.sleep)
closing_ceremony = my_schedular.enterabs(time.time(), 1, event_notification, ("The Closing Ceremony", ))
my_schedular.run()
# Output: The Closing Ceremony has startedAdditional functions include cancel() , enter() , and empty() .
3. binascii
binascii converts between binary data and ASCII representations. The b2a_base64 method encodes base64 data to binary.
Example:
import base64, binascii
msg = "Tandrew"
encoded = msg.encode('ascii')
base64_msg = base64.b64encode(encoded)
decode = binascii.a2b_base64(base64_msg)
print(decode)
# Output: b'Tandrew'Other functions include a2b_qp() , b2a_qp() , and a2b_uu() .
4. tty
tty offers utilities for handling tty devices, primarily on Unix systems and often used with the termios module.
setraw(fd) – sets the file descriptor to raw mode.
setcbreak(fd) – sets the file descriptor to cbreak mode.
5. weakref
weakref creates weak references to objects, allowing them to be garbage‑collected.
getweakrefcount(obj) – returns the number of weak references to obj .
getweakrefs(obj) – returns a list of weak references to obj .
Example:
import weakref
class Book:
def print_type(self):
print("Book")
lotr = Book
num = 1
rcount_lotr = str(weakref.getweakrefcount(lotr))
rcount_num = str(weakref.getweakrefcount(num))
rlist_lotr = str(weakref.getweakrefs(lotr))
rlist_num = str(weakref.getweakrefs(num))
print("number of weakrefs of 'lotr': " + rcount_lotr)
print("number of weakrefs of 'num': " + rcount_num)
print("Weakrefs of 'lotr': " + rlist_lotr)
print("Weakrefs of 'num': " + rlist_num)
# Output:
# number of weakrefs of 'lotr': 1
# number of weakrefs of 'num': 0
# Weakrefs of 'lotr': [
]
# Weakrefs of 'num': []Additional utilities include ref() , proxy() , and _remove_dead_weakref() .
Understanding these modules expands the Python toolbox, enabling more efficient and versatile code.
Sohu Tech Products
A knowledge-sharing platform for Sohu's technology products. As a leading Chinese internet brand with media, video, search, and gaming services and over 700 million users, Sohu continuously drives tech innovation and practice. We’ll share practical insights and tech news here.
How this landed with the community
Was this worth your time?
0 Comments
Thoughtful readers leave field notes, pushback, and hard-won operational detail here.