tg-me.com/pyproglib/6697
Last Update:
Использование старых модулей может привести к неожиданным ошибкам в проектах.
Вот 11 устаревших Python-модулей и их современные аналоги:
Модуль pipes
был удален, так как был заменен более мощным и кросс-платформенным модулем subprocess
.
import subprocess
result = subprocess.run("echo Hello | tr a-z A-Z", shell=True, capture_output=True, text=True)
print(result.stdout) # HELLO
Тип
Text
был предназначен для совместимости с Python 2, и теперь его можно заменить на str
.def greet(name: str) -> str:
return f"Hello, {name}!"
Модуль
urllib
устарел для работы с HTTP-запросами. Вместо него лучше использовать requests
или urllib3
.import requests
response = requests.post('https://httpbin.org/post', json={'name': 'Yang'})
print(response.json())
Модуль
crypt
устарел и его заменил более безопасный модуль bcrypt
для хеширования паролей.import bcrypt
password = b"strongpassword"
hashed = bcrypt.hashpw(password, bcrypt.gensalt())
С Python 3.9 можно использовать встроенные типы без импорта из модуля
typing
.def func(x: list[int]) -> dict[str, int]:
return {}
Использование
%
или .format()
устарело. Современный способ — это f-строки.name = "Yang"
print(f"My name is {name}.")
Модуль
cgi
устарел и заменен современными фреймворками для веб-разработки, такими как Flask
или FastAPI
.Модуль
ossaudiodev
устарел, и для работы с аудио рекомендуется использовать такие модули, как pyaudio
или sounddevice
.Модуль
pickle
может быть опасным для использования, так как есть риски выполнения вредоносного кода. Для безопасной сериализации лучше использовать json
.import json
data = {"name": "Yang"}
with open('data.json', 'w') as f:
json.dump(data, f)
Эти модули устарели, и теперь лучше использовать
asyncio
для асинхронного программирования.Модуль
random
использует предсказуемый алгоритм, который небезопасен для генерации паролей. Используйте secrets
для криптографически стойких случайных чисел.import secrets
password = secrets.token_hex(16)
Библиотека питониста #буст