🌀 В Python есть встроенная функция
✓ Список можно развернуть
✓ Кортежи тоже разворачиваются
Можно итерироваться по
✓ Множества не разворачиваются
Причина: множества *не имеют порядка*, а значит разворачивать нечего.
Если нужно развернуть множество — сначала сделай его списком:
@pythonl
reversed(), но работает она не со всеми структурами данных. Быстрый разбор:✓ Список можно развернуть
reversed([1, 2, 3]) возвращает итератор. list(reversed([1, 2, 3])) → [3, 2, 1]✓ Кортежи тоже разворачиваются
Можно итерироваться по
reversed((1, 2, 3))✓ Множества не разворачиваются
reversed({1, 2, 3}) → TypeError: 'set' object is not reversible Причина: множества *не имеют порядка*, а значит разворачивать нечего.
Если нужно развернуть множество — сначала сделай его списком:
list(reversed(list({1, 2, 3})))@pythonl
❤9👍7🔥1
This media is not supported in your browser
VIEW IN TELEGRAM
🔥 Безопасный запуск Linux-команд из Python
Если нужно из Python безопасно выполнять системные команды в Linux, используй изоляцию через
@pythonl
Если нужно из Python безопасно выполнять системные команды в Linux, используй изоляцию через
subprocess с принудительным сбросом привилегий. Такой приём позволяет запускать команды даже в окружениях с потенциально небезопасным вводом, блокируя доступ к опасным системным вызовам и снижая риск эксплуатации.
import subprocess
import os
def safe_run(cmd):
# Запускаем процесс без наследования переменных окружения
env = {"PATH": "/usr/bin:/bin"}
# Сбрасываем привилегии, если процесс запущен от root
def drop_priv():
os.setgid(65534)
os.setuid(65534)
result = subprocess.run(
cmd,
env=env,
preexec_fn=drop_priv,
stdout=subprocess.PIPE,
stderr=subprocess.PIPE,
text=True,
timeout=3,
)
return result.stdout
print(safe_run(["ls", "/"]))
@pythonl
❤9👍4🔥4😁2
Изучаем Python, Docker, Git и выходим в DevOps с абсолютного нуля — нашли огромную библиотеку с сотнями подробных материалов.
• Сильная теоретическая база: язык программирования, сети, базы данных, система контроля версий.
• Короткие, но насыщенные уроки — учись по дороге на работу, в обед или во время короткого перерыва.
• Много практики — закрепишь навыки, соберёшь проекты и усилишь своё портфолио.
• Всё объясняется пошагово, простым языком — подойдёт даже тем, кто только сегодня услышал слово «программирование».
https://kodekloud.com/studio/labs
• Сильная теоретическая база: язык программирования, сети, базы данных, система контроля версий.
• Короткие, но насыщенные уроки — учись по дороге на работу, в обед или во время короткого перерыва.
• Много практики — закрепишь навыки, соберёшь проекты и усилишь своё портфолио.
• Всё объясняется пошагово, простым языком — подойдёт даже тем, кто только сегодня услышал слово «программирование».
https://kodekloud.com/studio/labs
❤9🔥2👍1
Как это — работать в Т-Банке?
Загляните в канал T-Crew, где увидите:
— жизнь и будни команды;
— ИТ-хабы компании по всей России;
— анонсы мероприятий;
— кейсы, статьи и советы для карьерного роста.
Еще здесь можно раньше других найти вакансии в ИТ и диджитале. За полезным — сюда
erid:2RanymxHnD8
Загляните в канал T-Crew, где увидите:
— жизнь и будни команды;
— ИТ-хабы компании по всей России;
— анонсы мероприятий;
— кейсы, статьи и советы для карьерного роста.
Еще здесь можно раньше других найти вакансии в ИТ и диджитале. За полезным — сюда
erid:2RanymxHnD8
❤4👍1🔥1😱1😢1
🛠️ Tracer для системных вызовов на macOS
strace-macos — это инструмент для отслеживания системных вызовов на macOS с использованием API отладчика LLDB. Он работает с включенной защитой целостности системы и написан на чистом Python, что исключает необходимость в расширениях ядра.
🚀 Основные моменты:
- Поддержка SIP без отключения
- Вывод в формате JSON и текстовом формате
- Фильтрация системных вызовов по имени и категории
- Символическое декодирование аргументов
- Статистика вызовов и ошибок
📌 GitHub: https://github.com/Mic92/strace-macos
strace-macos — это инструмент для отслеживания системных вызовов на macOS с использованием API отладчика LLDB. Он работает с включенной защитой целостности системы и написан на чистом Python, что исключает необходимость в расширениях ядра.
🚀 Основные моменты:
- Поддержка SIP без отключения
- Вывод в формате JSON и текстовом формате
- Фильтрация системных вызовов по имени и категории
- Символическое декодирование аргументов
- Статистика вызовов и ошибок
📌 GitHub: https://github.com/Mic92/strace-macos
❤5👍1🔥1