Inbuilt Libraries in Python
1. Data Types & Structures
collections– Specialized data structures (e.g.,Counter,deque).array– Efficient arrays of numeric values.datetime– Date and time manipulation.math– Mathematical functions (e.g.,sqrt(),pi).random– Random number generation.
2. File Handling & I/O
os– Interact with the operating system.sys– System-specific parameters and functions.io– Core I/O operations.csv– Read and write CSV files.json– Parse JSON data.
3. Algorithms & Computations
itertools– Efficient looping and combinatorial functions.functools– Higher-order functions (e.g.,reduce(),lru_cache()).math– Mathematical operations.statistics– Basic statistical functions (e.g.,mean(),median()).
4. Networking & Internet
http– HTTP protocol handling.socket– Low-level networking.urllib– Fetch data from URLs.
5. Testing & Debugging
unittest– Unit testing framework.logging– Logging utility for applications.traceback– Print and manage tracebacks.
6. Data Serialization
pickle– Serialize Python objects.json– Encode and decode JSON data.
7. Regular Expressions
re– Regular expression matching and manipulation.
8. Cryptography & Security
hashlib– Secure hash algorithms (e.g.,sha256()).hmac– Hash-based message authentication codes.
9. Concurrency & Parallelism
threading– Thread-based parallelism.multiprocessing– Process-based parallelism.asyncio– Asynchronous I/O.
10. Miscellaneous
time– Time-related functions.copy– Shallow and deep copy operations.subprocess– Run and control subprocesses.
datetime Module
For working with dates and times.
Importing
from datetime import datetime, date, timedeltaCurrent Date & Time
now = datetime.now() # Current date & timetoday = date.today() # Current date (without time)print(now, today)Formatting Dates ⭐
formatted = now.strftime("%Y-%m-%d %H:%M:%S") # Custom formatprint(formatted) # e.g., 2023-08-27 14:35:22Common Format Codes:
%Y– Year (2023),%m– Month (08),%d– Day (27),%H– Hour (24-hour),%M– Minute,%S– Second
Parsing Strings to Dates
date_obj = datetime.strptime("2023-08-27", "%Y-%m-%d")print(date_obj) # 2023-08-27 00:00:00Date Arithmetic
tomorrow = today + timedelta(days=1)print(tomorrow) # Next day's datetime Module
For working with time and delays.
Importing
import timeCurrent Time
print(time.time()) # Epoch time (seconds since 1970)print(time.ctime()) # Human-readable (e.g., "Mon Aug 28 14:00:00 2023")Sleep (Delay Execution)
print("Start")time.sleep(3) # Pause for 3 secondsprint("End")Measure Execution Time
start = time.time()time.sleep(2)end = time.time()print(f"Elapsed: {end - start:.2f} seconds")Formatting Time
now = time.localtime()print(time.strftime("%Y-%m-%d %H:%M:%S", now)) # 2023-08-28 14:00:00os Module
For interacting with the operating system.
Importing
import osFile and Directory Operations
print(os.getcwd()) # Current working directoryos.mkdir("new_folder") # Create a directoryos.rmdir("new_folder") # Remove an empty directoryos.remove("file.txt") # Delete a filePath Operations ⭐
print(os.path.exists("file.txt")) # Check if a file existsprint(os.path.join("folder", "file.txt")) # Join paths safelyAccessing Environment Variable
api_key = os.getenv('API_KEY') # Get Environment Variabledb_user = os.getenv('DB_USER', 'default_user') # Default Value if Variable is MissingEnvironment Variables
# Set new environment variableos.environ['API_KEY'] = '123'
# Accessing Environment Variableprint(os.environ['API_KEY']) # Access environment variableprint(os.getenv('API_KEY')) # or Another Method to Access ⭐print(os.getenv('API_KEY', 'default_user')) # Default Value if Variable is MissingOr Setting Environment Variables from the OS (Outside Python)
# Setting Environment Variables - Temporarily (For Current Session)export API_KEY="your_api_key" # Linux/macOSset API_KEY="your_api_key" # Windows (Command Prompt)$env:API_KEY="your_api_key" # Windows (PowerShell)os.environ: Changes persist only while the Python process is running.export/set/$env:: Lasts only for the session—not permanent.- Use
os.getenv()for safer access to avoidKeyError. - Priority Order of Environment Variables in Python:
- Python Process (
os.environ) > Shell/Terminal Session > System Environment Variables
- Python Process (
csv Module
For handling CSV (Comma-Separated Values) files.
Importing
import csvRead CSV File
with open("data.csv", "r") as file: reader = csv.reader(file) for row in reader: print(row)Write CSV File
data = [["Name", "Age"], ["Alice", 30], ["Bob", 25]]
with open("output.csv", "w", newline='') as file: writer = csv.writer(file) writer.writerows(data)Read CSV as Dictionary
with open("data.csv", "r") as file: reader = csv.DictReader(file) for row in reader: print(row['Name'], row['Age'])Write CSV from Dictionary
data = [{'Name': 'Alice', 'Age': 30}, {'Name': 'Bob', 'Age': 25}]
with open("output.csv", "w", newline='') as file: fieldnames = ['Name', 'Age'] writer = csv.DictWriter(file, fieldnames=fieldnames) writer.writeheader() writer.writerows(data)json Module
For working with JSON (JavaScript Object Notation) data.
Importing
import jsonRead JSON from File
with open("data.json", "r") as file: data = json.load(file) print(data)Write JSON to File
data = {"name": "Alice", "age": 30}
with open("output.json", "w") as file: json.dump(data, file, indent=4)Convert JSON String to Python
json_str = '{"name": "Bob", "age": 25}'data = json.loads(json_str)print(data['name'])Convert Python to JSON String
data = {"name": "Charlie", "age": 35}json_str = json.dumps(data, indent=4)print(json_str)math Module
For mathematical functions.
Importing
import mathBasic Operations
print(math.sqrt(25)) # Square root (5.0)print(math.pow(2, 3)) # Power (2^3 = 8.0)print(math.factorial(5)) # Factorial (120)print(math.gcd(12, 15)) # Greatest Common Divisor (3)Constants
print(math.pi) # π (3.141592653589793)print(math.e) # Euler’s number (2.718281828459045)print(math.inf) # InfinityRounding & Trigonometry
print(math.floor(3.7)) # Round down (3)print(math.ceil(3.2)) # Round up (4)
print(math.sin(math.pi/2)) # Sine (1.0)print(math.degrees(math.pi)) # Radians → Degrees (180.0)print(math.radians(180)) # Degrees → Radians (π)http Module
For HTTP requests and server utilities.
Importing
from http.client import HTTPConnectionSimple GET Request
conn = HTTPConnection("example.com")conn.request("GET", "/")response = conn.getresponse()print(response.status, response.reason) # 200 OKprint(response.read().decode()) # Response bodyconn.close()urllib Module
For URL handling and web requests.
Importing
import urllib.requestimport urllib.parseOpen a URL
response = urllib.request.urlopen("http://example.com")print(response.read().decode()) # Page contentSend Data (POST Request)
data = urllib.parse.urlencode({'name': 'Alice'}).encode()response = urllib.request.urlopen("http://example.com", data=data)print(response.read().decode())Download a File
urllib.request.urlretrieve("http://example.com/image.jpg", "image.jpg")re Module
For regular expressions (pattern matching).
Importing
import reSearch for a Pattern ⭐
text = "My phone number is 123-456-7890"match = re.search(r'\d{3}-\d{3}-\d{4}', text)if match: print(match.group()) # 123-456-7890Find All Matches ⭐
emails = re.findall(r'\w+@\w+\.\w+', "Contact us at a@test.com or b@xyz.com")print(emails) # ['a@test.com', 'b@xyz.com']Replace Text
new_text = re.sub(r'\d+', 'XXX', 'Order 123 has been shipped.')print(new_text) # Order XXX has been shipped.Split Text
words = re.split(r'\W+', "Python is awesome!")print(words) # ['Python', 'is', 'awesome', '']asyncio Module
For asynchronous programming (I/O-bound tasks).
Importing
import asyncioSimple Async Function ⭐
# Define an asynchronous function using 'async def'async def greet(): await asyncio.sleep(1) # Non-blocking sleep for 1 second (simulates I/O operation). print("Hello, World!") # Prints after the 1-second delay.
# Run the asynchronous function using 'asyncio.run()'asyncio.run(greet()) # Starts the event loop and runs the 'greet()' coroutine.Run Multiple Tasks
async def task(name, delay): await asyncio.sleep(delay) print(f"Task {name} finished!")
# Main coroutine to run multiple tasks concurrentlyasync def main(): # Run both tasks concurrently and wait for both to complete await asyncio.gather(task(1, 2), task(2, 1))
# Start the asyncio event loop and execute 'main()'asyncio.run(main())Asynchronous HTTP Request
import aiohttp # For making asynchronous HTTP requests.
# Define an asynchronous function to fetch content from a URLasync def fetch(url): # Create an asynchronous HTTP session async with aiohttp.ClientSession() as session: # Make an asynchronous GET request to the URL async with session.get(url) as resp: # Wait for and print the response body (text content) print(await resp.text())
# Start the event loop and run the 'fetch()' coroutineasyncio.run(fetch('http://example.com'))