Files & data
Read and write files safely; parse JSON, CSV, and common text formats.
How to Validate a JSON File in Python
A beginner-friendly Python helper that reads a JSON file, catches common errors, and returns a status dictionary.
import json
from pathlib import Path
def get_valid_json_data(file_path: str) -> dict:
file = Path(file_path)
if not file.exists():
return {"status": "error", "message": f"File not found: {file_path}"}
try:
data = json.loads(file.read_text())
except json.JSONDecodeError as e:
…
How to Walk a Directory Tree with os.walk in Python
A generator function that recursively walks a directory tree and yields every file path found using the os.walk generator.
import os
def walk_directory_tree(root_path: str):
"""Walk a directory tree and yield file paths using os.walk generator."""
for dirpath, dirnames, filenames in os.walk(root_path):
for filename in filenames:
yield os.path.join(dirpath, filename)
if __name__ == "__main__":
# Create a…
How to Watch a Directory for New Files in Python
Poll a directory at regular intervals and detect newly added files, printing each one as it appears.
import time
import os
from pathlib import Path
WATCH_DIR = Path("watched_files")
def watch_for_new_files(directory: Path, sleep_time: float = 1.0, max_iterations: int = 10):
"""Poll a directory for new files and print when one appears."""
directory.mkdir(exist_ok=True)
existing = set(os.listdir(directory…
How to Write Bytes to a File in Python with 'wb'
Write a bytearray buffer to a binary file using Python's open() in 'wb' mode, then read it back to confirm the data.
data = bytearray([0x48, 0x65, 0x6c, 0x6c, 0x6f, 0x20, 0x57, 0x6f, 0x72, 0x6c, 0x64])
with open("output.bin", "wb") as f:
f.write(data)
with open("output.bin", "rb") as f:
content = f.read()
print(f"Written {len(data)} bytes: {content}")
print(f"As string: {content.decode('ascii')}")
How to Write Simple XML Documents with ElementTree in Python
Create well-structured XML documents in memory using Python's built-in ElementTree module, complete with nested elements, attributes, and text content.
import xml.etree.ElementTree as ET
def create_xml_document():
# Create root element
root = ET.Element("catalog")
# Create a book element with attributes and children
book1 = ET.SubElement(root, "book", id="bk101")
ET.SubElement(book1, "author").text = "Gambardella, Matthew"
ET.SubElement(…
How to Write a Dict to a Pretty JSON File with Indent in Python
Serializes a Python dictionary to a readable JSON file using json.dump with indentation and sorted keys, then prints the file contents to stdout.
import json
from pathlib import Path
data = {
"name": "Python",
"version": 3.12,
"features": ["simple", "readable", "powerful"],
"nested": {"creator": "Guido van Rossum", "year": 1991}
}
output_path = Path("output.json")
with output_path.open("w", encoding="utf-8") as f:
json.dump(data, f, inden…
How to Write a List of Lines to a Text File Safely in Python
This code atomically writes a list of strings as lines to a text file using a temporary file and os.replace to prevent corruption.
from pathlib import Path
import tempfile
import os
def write_lines_safely(lines: list[str], filepath: str | Path) -> None:
"""Write lines to a text file atomically to avoid corruption."""
path = Path(filepath)
path.parent.mkdir(parents=True, exist_ok=True)
fd, temp_path = tempfile.mkstemp(dir=str…
How to check file data in Python
Check if a file exists and is a regular file, then return its name, size, line count, and first line.
def check_file_data(file_path):
from pathlib import Path
path = Path(file_path)
if not path.exists():
return f"File '{file_path}' does not exist."
if not path.is_file():
return f"'{file_path}' is not a regular file."
size = path.stat().st_size
lines = path.read_text(encodin…
How to resolve a symlink to its real path in Python with pathlib
Use Path.resolve() to turn a symlink path into its absolute target path, handling relative symlinks and eliminating symbolic links.
from pathlib import Path
def resolve_symlink(path):
p = Path(path)
return str(p.resolve())
if __name__ == "__main__":
# Create a symlink to demonstrate the resolution
target = Path("/tmp/real_target.txt")
target.write_text("hello")
link = Path("/tmp/my_link.txt")
try:
link.symlink…
How to write an INI config section with configparser in Python
Create an INI configuration file with sections using Python's configparser module and write it to disk.
import configparser
config = configparser.ConfigParser()
config["General"] = {
"host": "localhost",
"port": "8080",
"debug": "true"
}
config["Database"] = {
"name": "appdb",
"user": "admin",
"password": "secret"
}
with open("example.ini", "w") as file:
config.write(file)
with open("examp…
Read Parquet-Like Columnar CSV Chunks in Python
A Python generator that reads a CSV file column-by-column, yielding dictionary chunks where each key points to a list of values—mirroring how Parquet stores data columnar.
```python
import csv
from pathlib import Path
from typing import Iterator, List
def read_parquet_like_columnar(csv_path: str, column_names: List[str], chunk_size: int = 2) -> Iterator[dict]:
"""Read CSV data in columnar chunks, similar to how parquet stores columns."""
csv_file = Path(csv_path)
with csv_f…
Browse by section
Each section groups closely related Python snippets.
Files & data — Python code examples
What you will find here
This page collects files & data snippets — short, copy-ready Python you can paste into our free online IDE and run without installing anything. Each sample includes a plain-English explanation and the full source code.
Samples vs tutorials and challenges
Samples are quick reference — one concept per page. For step-by-step teaching, use our Python tutorials. To test yourself, try quizzes or coding challenges. Clean up style with the Python formatter.