DEV Community

Cover image for 50 Python One-Liners Every Developer Should Have in Their Toolbox
PyToolKit
PyToolKit

Posted on

50 Python One-Liners Every Developer Should Have in Their Toolbox

LOGOPython's expressiveness lets you do in a single line what takes five in other languages. Here are 50 battle-tested one-liners I've collected over years of writing automation scripts.

File & System

lines = open('data.txt').read().splitlines()
open('out.txt', 'w').write('\n'.join(my_list))
py_files = [str(p) for p in __import__('pathlib').Path('.').rglob('*.py')]
__import__('os').makedirs('output/reports', exist_ok=True)
all_files = [f for r, _, fs in __import__('os').walk('.') for f in fs]
latest = max(__import__('pathlib').Path('.').glob('*'), key=lambda p: p.stat().st_mtime)
Enter fullscreen mode Exit fullscreen mode

Data Structures

flat = [item for sublist in nested for item in sublist]
unique = list(dict.fromkeys(my_list))
most_common = max(set(my_list), key=my_list.count)
transposed = list(zip(*matrix))
merged = dict1 | dict2
inverted = {v: k for k, v in original.items()}
d = dict(zip(keys, values))
filtered = {k: v for k, v in d.items() if v > threshold}
Enter fullscreen mode Exit fullscreen mode

String Manipulation

reversed_str = s[::-1]
is_pal = lambda s: s == s[::-1]
freq = {c: s.count(c) for c in set(s)}
formatted = f"{1234567:,}"
slug = '-'.join(re.sub(r'[^\w\s-]', '', text.lower()).split())
nums = [int(x) for x in re.findall(r'\d+', text)]
titled = ' '.join(w[0].upper() + w[1:] for w in s.split())
no_ws = ''.join(s.split())
trunc = lambda s, n: s[:n-3] + '...' if len(s) > n else s
Enter fullscreen mode Exit fullscreen mode

Functional & List Comprehensions

evens = [x for x in nums if x % 2 == 0]
squared = [x**2 for x in nums]
result = [x*2 for x in nums if x > 0]
common = list(set(a) & set(b))
diff = list(set(a) - set(b))
chunks = [lst[i:i+n] for i in range(0, len(lst), n)]
float_range = lambda start, stop, step: [start + i*step for i in range(int((stop-start)/step))]
Enter fullscreen mode Exit fullscreen mode

Date, Time & Math

today = __import__('datetime').date.today().isoformat()
days = (lambda d1, d2: (d2-d1).days)(__import__('datetime').date(2026, 1, 1), __import__('datetime').date.today())
dates = [__import__('datetime').date.today() + __import__('datetime').timedelta(days=i) for i in range(30)]
fact = lambda n: __import__('math').prod(range(1, n + 1))
is_prime = lambda n: n > 1 and all(n % i for i in range(2, int(n**0.5) + 1))
human = lambda b: f"{b/1<<30:.1f} GB" if b >= 1<<30 else (f"{b/1<<20:.1f} MB" if b >= 1<<20 else f"{b/1024:.1f} KB")
Enter fullscreen mode Exit fullscreen mode

Web, JSON & APIs

data = __import__('json').loads(__import__('urllib.request').urlopen('https://api.example.com/data').read())
print(__import__('json').dumps(data, indent=2, ensure_ascii=False))
__import__('urllib.request').urlretrieve('https://example.com/file.pdf', 'local.pdf')
params = dict(__import__('urllib.parse').parse_qsl(__import__('urllib.parse').urlparse(url).query))
qs = __import__('urllib.parse').urlencode({'key': 'val', 'page': 1})
domain = __import__('urllib.parse').urlparse(url).hostname
Enter fullscreen mode Exit fullscreen mode

Regex & Text

emails = __import__('re').findall(r'[\w.+-]+@[\w-]+\.[\w.-]+', text)
is_email = bool(__import__('re').match(r'^[\w.+-]+@[\w-]+\.[\w.-]+$', email))
clean = __import__('re').sub(r'\s+', ' ', text).strip()
parts = __import__('re').split(r'[;|,]', 'a;b|c,d')
between = __import__('re').findall(r'<tag>(.*?)</tag>', html)
plain = __import__('re').sub(r'<[^>]+>', '', html)
Enter fullscreen mode Exit fullscreen mode

These are great for quick tasks, but if you script often you'll eventually want reusable versions with error handling and a proper CLI.

That's why I built PyToolkit — all these patterns plus dozens more, organized into 5 modules (files, data, PDFs, web, images) with a unified command-line interface.

https://toolkitpy.com — $5 one-time, lifetime access.

Happy coding!

Top comments (0)