Valeriy
вот видишь, что в PyQt5.QtWidgets вообще ничего нет
Valeriy
видно не доставился пайкьют
Valeriy
иначе бы ты увидел там твои модули
Valeriy
Выдает одну и ту же ошибку и при установленом кьюти, и при не установленом
Valeriy
Пробовал всячески переустанавливать – не помогло
Сергей
привет! подскажите кто знает, на чем быстрее всего парсер написать? (питон, js, ruby)
.
Сергей
спасибо!🙂
Aidar
Сергей
знаю руби лучше всего, а так могу на любом, хотел время сэкономить
Andrey 😼
Andrey 😼
(да, вряд ли уже актуально, но не упомянуть не мог)
Сергей
сделал на руби, watir почти как nokogiri, а есть пример парсер на питоне пощупать, на гитхабе или еще где?
Andrey 😼
Ватир разве не требует целый браузер?
Сергей
headless chrome использовал
Andrey 😼
Ну, просто нокогири - это только парсер и, следовательно, куда легковеснее)
Сергей
кстати да, может и зря я вообще хром взял в этот раз
adel
Подскажите, пожалуйста. Как посчитать узнать кол-во строчек в файле? (расширение .txt)
Valeriy
скопируй в редактор кода😂
Valeriy
там есть нумерация строк😆
Valeriy
а так не знаю
Valeriy
знаю как количество символов посчитать
Absolute
считать весь файл и посмотреть кол-во переносов строк
adel
Более оптимальный способ есть? Про \n я знаю.
adel
Нашел еще такой sum(1 for l in open('file', ‘r’)) .
Absolute
while input(): cnt+= 1
Absolute
и переопредели stdin
Сергей
конвертировать в массив и посчитать количество элементов
Сергей
на руби в одну строчку можно сделать
Сергей
хотя может какая-то штука есть и для построчного чтения
Yehor
Yaroslav
лол
sytyy00
всем привет, прошу не гнобить ,только начал учить питон . и у меня вопрос . log.exception("Exception message") этот лог в exception ,чтобы выводился на консоль и в файл в файл сделал так logging.FileHandler('log_2.log', 'a') и setLevel(logging.INFO) . как это сделать ?
Денис
AddHeandler
sytyy00
error = logging.getLogger("Error")
error.setLevel(logging.INFO)
handler_2 = logging.FileHandler('log_2.log', 'a')
handler_2.setLevel(logging.INFO)
formatter_2 = logging.Formatter('%(asctime)s - %(name)s - %(levelname)s - %(message)s')
handler_2.setFormatter(formatter_2)
error.addHandler(handler_2)
sytyy00
вот такой код
sytyy00
try:
in_card = int(input("Repel "))
except ValueError:
error.exception("Exception message")
sytyy00
при таком исполнении выводит только в файл
Vitaly
Вернуться в игру
Vitaly
🙁
Vladimir
bot.send_message(message.chat.id, "blabla :" + \ "\nd: " + uy[message.chat.id] + \
"\ns: " + st[message.chat.id] + \
"\nf: " + ce[message.chat.id] + " " + \ da[message.chat.id] + " вц" nt[message.chat.id])
Vladimir
друзья, вот такой код
Vladimir
обязательно ли нужны "\"?
Vladimir
подскажите как сделать красивее
Yaroslav
Прочитай про экранирование символов
Yaroslav
И перенос строк кода
Vladimir
не могу найти нормального обьяснения по моему случаю....
Vladimir
я думаю что надо так
Vladimir
bot.send_message(message.chat.id, "klsdlkasjdlkadls" +
"alsdk;lasdkals")
Andrey
Если вопрос в строке, то я бы вначале сделал список того, что нужно склеить, а потом воспользовался бы join-ом
Andrey
Это красивее чем куча \
Vladimir
уууу.... join еще сюда лепить
Vladimir
смысл в том что в каждой след строке должны бытьпробелы в начале
Andrey
и?)
Vladimir
и кавычки должны быть на уровне скобки
Vladimir
так?
Vladimir
открывающие кавычки во второй строке должны быть на уровне скобки первой строки
Andrey
lst = ["blabla :", "\nd: ", uy[message.chat.id], "\ns: ", st[message.chat.id], "\nf: ", ce[message.chat.id], " ", da[message.chat.id], " вц", nt[message.chat.id]]
msg = "".join(lst)
bot.send_message(message.chat.id, msg )
Vladimir
а можете еще обьяснить почему pep8 рекомендует заменять == на is
Vladimir
?
Andrey
я думаю pep8 объяснит лучше нас)
Vladimir
E711 comparison to None should be 'if cond is None:'
Vladimir
это даже не предупреждение (W) а ошибка (E)
Vladimir
lst = ["blabla :", "\nd: ", uy[message.chat.id], "\ns: ", st[message.chat.id], "\nf: ", ce[message.chat.id], " ", da[message.chat.id], " вц", nt[message.chat.id]]
msg = "".join(lst)
bot.send_message(message.chat.id, msg )
ааа, вот оно как.. интересно, спасибо за пример
Andrey
не за что
Vladimir
не за что
это довольно удобно, когда много одинакового текста, или есть необходимость сделать мультилэнгвидж
Vladimir
имхо
Andrey
есть либа aiotg - асинхронная обертка к телеграмботапи
Anonymous
Vladimir
Vladimir
Andrey
запросы к боту обрабатывает асинхронно
Vladimir
спасибо, это интересно
Andrey
пожалуйста)
Aquinary
Что посоветуете по паттернам и архетиктуре по питону почитать? Оно к языку, конечно, не привязано, но для наглядности. Очень часто страдаю от желания "переписать код"
Vladimir
оказывается есть разница между is и ==
Vladimir
с == программа работает, а с is начинает работать не так как надо :))
Vladimir