- 1
- 2
def IsZIPFile(filename):
return filename.lower().endswith('.zip')
Нашли или выдавили из себя код, который нельзя назвать нормальным, на который без улыбки не взглянешь? Не торопитесь его удалять или рефакторить, — запостите его на говнокод.ру, посмеёмся вместе!
0
def IsZIPFile(filename):
return filename.lower().endswith('.zip')
ибааааать!
я бы просто написал
filename.lower().endswith('.zip')
алсо
import pathlib
pathlib.Path(filename).suffix == zip
https://www.python.org/dev/peps/pep-0008/#function-and-variable-names
Ну вдруг это код каких-нибудь сишников, и у них в компании свой кодстайл.
Лично я вот так пишу: variable_name, functionName, ClassName, и мне нормально .
фу, нахуя нарушать конвенции?
Всё таки питух реднкая вербозня, нахуя вот тут две строчки?
https://youtu.be/HGutEFXo9os
> Всё таки питух реднкая вербозня, нахуя вот тут две строчки?
Напиши на одной, мне не жалко. Потом придётся переделывать это, заебёшься искать по коду такие конструкции.
В данном конкретном случае в любом ЯП можно это обернуть в функцию, чтобы выглядело пижже. И не такой уж это и вербознух.
В нормальном языке даже эту функцию можно написать в одну строку.
И не надо filename делать строкой, кстати. Будешь потом слешики неправильные выкавыривать.
Да там половина стандартной либы с нарушением PEP8 написана...
в IsBukva
Джордейна все помнят?
мне казалось, что только я ту книжку сюда приносил
А вдруг это docx или сейв от какой-нибудь игрушки?
и расширение проверять. А если нужно чисто для нас, то пофиг на расширение, главное чтобы открывалось, дальше разберёмся.
Паттерн "переименованый zip" — лидер на рынке хранения ресурсов.
Telki.mp4.exe
Windows10.iso.exe
и даже
Windows10.torrent.exe
вдруг мы ебанутые, и храним это в базе, как BLOB, а расширение (вместе с контент диспозишином) приделываем сами, когда отдаем данные?
помножил на 0
Как часто вы находите неизвестные файлы на жёстком диске? Кто их вам подкладывает?
офигеешь от всех этих ~1~
Проверил .scr файл. Заголовок MZ. Заглянул через Impex плагин в фаре, вижу обычное 64битное приложение. В секции IMPORTS вижу .dllки. В ресурсах вижу картинки.
Там вроде был экстешнен для скринсейверов, нужно почитать
зы: да, программа, общающаяся с сервером через тот самый экстиешншен
http://manpages.ubuntu.com/manpages/bionic/man3/Xss.3.html
Руками байтики читать, ещё из Пистона, это сорт пиздеца
даже несмотря на то что я "зип" вытащил из внешнего котейнера
а там 4 гб
Вообще если тебя вольнуют первые 4 байта, то помоему лучше именно их и считать, а не readall
read(len(prefix)) == prefix
Так же, как и с проверкой мыла: собачка есть и ладно.
Но доктор сказал в морг, значит, в морг
Именно поэтому я за "YAGNI".
ты переменную зачем завёл, изверг? она тебе не нужна.
напиши два раза строковый литерал.
правда... тогда ты нарушишь DRY! сложно быть читателем википедии.
но виноваты конечно авторы питоньячьей либы, сложно было что ли зафигачить метод readAndCheck(str)??
Ты в этом случае за «веб-програмиирование» или «DRY»?
тут нужна экспертиза Соломона Самсоновича и Африкана Свиридовича
Если же твой фреймворк позволяет написать её один раз, и запустить на беке и на фронте, то DRY не нарушен.
Хотя бы на уровне HTMLя расставлять type и pattern.
Валидировать на сервере нужно всегда, это вопрос безопасности
Валидировать на клиенте очень желательно: это вопрос удобства
Можно отсылвать всё на сервер, и валидировать там.
Но если фреймворк может логику валидации запустить и на сервере, и на клиенте, причем из одного и того же сурса, то это вообще классно.
Писать одну и ту же логику два раза на двух языках это же уныло
https://pypi.org/project/WTForms-ParsleyJS/
Но это для WTForms из фласка. Не знаю, есть ли такая скилльная штука в джанге...
> тогда ты нарушишь DRY
read(3) == b"PK♥"
И YAGNI живы и DRY цел.
Изменение одного должно приводить к изменению второго.
Если одно поменять, а про другое забыть -- будет неконсистентно.
Это главная проблма не DRY кода: ты в одном месте поменял, а в другом забыл.
В то время как одно можно вывести из другого просто на этапе компиляции.
read(1000).startswith("PK♥")
Ок, убрал магические числа: read(math.exp(math.pi)).startswith("PK♥" )
https://man7.org/linux/man-pages/man2/mmap.2.html
https://en.wikipedia.org/wiki/X86-64#Virtual_address_space_details
Какой высокоуровневый язык с автоматическим управлением памятью )))
выстрелил и забыл
Генерал Файлюра читал мой диск, и нашел там еггог
- стильное радио
этож не меньшее говно
3un, ебнип, надо сканить с конца файла ради сигнатурки