@ru_python

Страница 7411 из 9768
Yegor
15.12.2018
11:25:27
В общем мой мегацкрипт разбит на две части, первая дергает все ссылки на товар, вторая дергает по этим ссылкам данные товара. Так вот, каждый раз первая часть скрипта дергает все больше и больше ссылок. Такое чувство что там на сайте кто-то херачит шопапакарла. Пол тыщи, за пару суток... В общем не верю. Думаю может мой мегачкрипт случайно дубли ссылок добавляет?

Так вот, посоветуйте как максимально быстро найти в файле из 30К строк дубликаты

Или тут только цикл?

Aragaer
15.12.2018
11:27:20
так .. у меня уже эльфы и гоблины начали ходить и бить друг друга

Google
Aragaer
15.12.2018
11:30:52
елка сегодня шикарная

Сергей
15.12.2018
11:32:22
30К строк вполне можно загрузить во множество, оно очистит данные от дублей. Советую сначала просто считать строки, посчитав их, потом посмотреть на длину множества. Если они разные, то переписать их опять в файл из множества.

Tishka17
15.12.2018
11:37:39
а все тестовые проходят

Владимир
15.12.2018
11:38:03
ну, просто убунта - то еще говнище
Что-то у тебя все говнище. Тем не менее тот же pyenv удобен при работе с неск проектами и разными версиями питона.

Stefan
15.12.2018
11:39:09
парни привет помогите разобраться новичку дело вот в чем, вот функция: ===================== import optparse def getArguments(): parser = optparse.OptionParser() parser.add_option("-i", "--interface", dest="interface", help="Choose interface <>") parser.add_option("-m", "--masc", dest="new_mac", help="Mac adress <>") (options, arguments) = parser.parse_args() if not options.interface: parser.error("[--->] Must choose interface, use --help ") elif not options.new_mac: parser.error("[--->] Must choose Mac adress, use --help ") return (options.interface, options.new_mac) ===================== я делаю прогу при запуске которой я даю 2 параметра, вот в таком формате: prog.py -i vasea -m kolea я хочу проверить есть ли аргументы, код функции выше дальше я начинаю тестить, и вот что получается: если я запускаю : " prog.py -i етх0 " -> то есть даю тока первый параметр и значение для него то обрабатывается ошибка и выскакивает сообшение из моего огработчика parser.error( .... ) а если я запускаю : " prog.py -i " -> то есть вставляю имя параметра (у меня их 2: -i -m) но не даю значение для етого параметра ТО ошибка обрабатывается НО не появляется сообшение из моего огработчика parser.error( .... ) а мне надо что в случае запуска без параметров или запуск с параметром но без значения для параметра при обработки ошибки высвечивался текст ошибки из моего обработчика parser.error( .... ) может кто подсказать ка реализовать мне это ???

Tishka17
15.12.2018
11:39:52
https://asciinema.org/a/1h8guSh9ekybBe7GsUnvnNakD

парни привет помогите разобраться новичку дело вот в чем, вот функция: ===================== import optparse def getArguments(): parser = optparse.OptionParser() parser.add_option("-i", "--interface", dest="interface", help="Choose interface <>") parser.add_option("-m", "--masc", dest="new_mac", help="Mac adress <>") (options, arguments) = parser.parse_args() if not options.interface: parser.error("[--->] Must choose interface, use --help ") elif not options.new_mac: parser.error("[--->] Must choose Mac adress, use --help ") return (options.interface, options.new_mac) ===================== я делаю прогу при запуске которой я даю 2 параметра, вот в таком формате: prog.py -i vasea -m kolea я хочу проверить есть ли аргументы, код функции выше дальше я начинаю тестить, и вот что получается: если я запускаю : " prog.py -i етх0 " -> то есть даю тока первый параметр и значение для него то обрабатывается ошибка и выскакивает сообшение из моего огработчика parser.error( .... ) а если я запускаю : " prog.py -i " -> то есть вставляю имя параметра (у меня их 2: -i -m) но не даю значение для етого параметра ТО ошибка обрабатывается НО не появляется сообшение из моего огработчика parser.error( .... ) а мне надо что в случае запуска без параметров или запуск с параметром но без значения для параметра при обработки ошибки высвечивался текст ошибки из моего обработчика parser.error( .... ) может кто подсказать ка реализовать мне это ???
да не юзай ты optparse

сказали же

есть argparse

Stefan
15.12.2018
11:41:45
fickle asshole
15.12.2018
11:50:41


ссори за меме

Google
fickle asshole
15.12.2018
11:50:59
но это смешно

Aragaer
15.12.2018
11:57:24
у меня ответ не сходится =(((
а у меня сломался волновой поиск когда нет маршрута 8)

или еще на чем-то

Tishka17
15.12.2018
11:58:27
а у меня сломался волновой поиск когда нет маршрута 8)
А ты достижимые не волной что ли ищешь?

Aragaer
15.12.2018
11:59:18
достижимые ищу волной, просто я до сих пор не сталкивался с ситуацией, когда достижимых нет. У меня волна очень ... на коленке сляпана

Tishka17
15.12.2018
11:59:33
Ну у меня тоже на коленке :))

Так они друг друга загораживабт

Aragaer
15.12.2018
12:01:36
угу

ну я только сейчас с таким столкнулся 8)

мхм

ок, обратная волна чот поломалась

Tishka17
15.12.2018
12:03:48
А я без обратной волны сделал. Но вроде должно пофиг быть

Aragaer
15.12.2018
12:04:13
там есть разница, через какую траекторию он пойдет

Vadik
15.12.2018
12:04:35
Всем привет. Помогите разобраться с авторизацией на сайте, при помощи библиотеки requests. Почему при входе в аккаунт через requests, coookies отличаются от тех, которые сохраняются в браузере ? Не хватет параметра data который содержит hashcode. Или hashcode генерируется скриптом в браузере и отсылается на сервер?

Сергей
15.12.2018
12:04:56
Накостылял вот такое поделие: http://dpaste.com/2XFTG0G Чисто ради того чтоб посмотреть есть ли дубли вообще ... есть
Есть такой костыль на определение наличия дублей: def there_are_doubles(_list): return len(_list) != len(set(_list))

Tishka17
15.12.2018
12:06:47
Aragaer
15.12.2018
12:07:05
ы, блин, у меня волновой поиск ломается когда на первой же волне цель достигнута 8)

Google
Vadim
15.12.2018
12:08:46
Привет. Ребят, посоветуйте решение. Есть задача сделать обработчик файлов, который получает файлы по http, асинхронно их обрабатывает и отдает результат. Дано: 1. Файл обрабатывается за 20-40сек. 2. Файлы будут загружаться по http пачками в 100-1000 файлов. 3. api сделано на flask и хочется на нем и остаться. 4. python 3.7 Первоначально думал сделать через celery + rabbitmq (но я не знаю насколько тяжело rabbit поддерживать в prod). Пока планирую сделать 3 части: 1. база на postgresql, в ней же будет очередь задач. 2. api на flask которое будет принимать файлы, укладывать их на диск и ставить задачу в postgresql. 3. обработчик, который собственно будет обрабатывать файлы (хочется иметь возможность разнести его на другой сервер и поднимать несколько инстансов). Думаю api к нему тоже сделать на flask по http, чтобы была возможность разнести на разные сервера. Вопрсосы: 1. Как запускать обработчик? Инициировать с приложения 1? И говорить ему "работая, очередь не пуста". 2. Как хранить файлы? Просто на диске? Или же создавать какой-либо файлообменник? 3. Хочу все завернуть в docker контейнеры. под python часть хочу вот этот взять - https://hub.docker.com/r/tiangolo/uwsgi-nginx-flask/. под postgresql - https://hub.docker.com/_/postgres/ Как вы считаете, есть ли здесь здравый смысл?)

Tishka17
15.12.2018
12:09:18
Спасибо. Зачем символ "_"???
Потому что list - встроенный тип. Вообще вроде по пепу надо чертояками в конце: list_

Aragaer
15.12.2018
12:09:35
во, чот дальше зашуршало

Сергей
15.12.2018
12:10:32
Спасибо. Зачем символ "_"???
Это все от лени, list - зарезервированное слово, его не стоит использовать в качестве переменной, мне лень было придумывать имя для переменной, достаточно поставить знак подчеркивания перед list и это уже другое слово. Кроме того, в питоне есть соглашение, если переменная начинается с _, то она используется для внутренних целей.

Tishka17
15.12.2018
12:10:34
Привет. Ребят, посоветуйте решение. Есть задача сделать обработчик файлов, который получает файлы по http, асинхронно их обрабатывает и отдает результат. Дано: 1. Файл обрабатывается за 20-40сек. 2. Файлы будут загружаться по http пачками в 100-1000 файлов. 3. api сделано на flask и хочется на нем и остаться. 4. python 3.7 Первоначально думал сделать через celery + rabbitmq (но я не знаю насколько тяжело rabbit поддерживать в prod). Пока планирую сделать 3 части: 1. база на postgresql, в ней же будет очередь задач. 2. api на flask которое будет принимать файлы, укладывать их на диск и ставить задачу в postgresql. 3. обработчик, который собственно будет обрабатывать файлы (хочется иметь возможность разнести его на другой сервер и поднимать несколько инстансов). Думаю api к нему тоже сделать на flask по http, чтобы была возможность разнести на разные сервера. Вопрсосы: 1. Как запускать обработчик? Инициировать с приложения 1? И говорить ему "работая, очередь не пуста". 2. Как хранить файлы? Просто на диске? Или же создавать какой-либо файлообменник? 3. Хочу все завернуть в docker контейнеры. под python часть хочу вот этот взять - https://hub.docker.com/r/tiangolo/uwsgi-nginx-flask/. под postgresql - https://hub.docker.com/_/postgres/ Как вы считаете, есть ли здесь здравый смысл?)
Звучит норм. Правда если захочешь несколько серверов, надо будет что-то типа nfs например поднять

Vadim
15.12.2018
12:11:54
Звучит норм. Правда если захочешь несколько серверов, надо будет что-то типа nfs например поднять
Согласен. на старте все будет на одном сервере, но я думаю, что если понадобится разнести, то не сложно будет это допилить.

Aragaer
15.12.2018
12:11:56
нашел у себя одну потенциальную багу, может повлияло бы на ответ

типа когда кого-то убили, он еще мог ударить в ответ. В теории

Tishka17
15.12.2018
12:12:46
А

У меня такое было, да

В тестовых такое есть

Yegor
15.12.2018
12:16:31
print(len(data)) zz = list(dict.fromkeys(data)) print(len(zz)) » 30122 » 30116 Можно было бы и не заморачиваться...

Но почему?

Yegor
15.12.2018
12:17:54
А чем это отличается от set()?
Мне гугль так подсказал)))

ща время засекемь!

Yergali
15.12.2018
12:18:32
всем привет. как отправить сообщение к боту через код? посоветуйте библиотеку

Tishka17
15.12.2018
12:18:35
В го, например, вообще сет отсутствует. Все делают через словарь

Google
Aragaer
15.12.2018
12:18:50
мхм. Не, чот у меня не сходится с тестами кое-где количество раундов

Tishka17
15.12.2018
12:19:17
А как с set() дубли вычленить?
set(list_) удалит дубли

Yegor
15.12.2018
12:19:26
и всьо?

Tishka17
15.12.2018
12:19:29
Да

Маришка
15.12.2018
12:19:32
А как с set() дубли вычленить?
Сет и так убирает дубли

Tishka17
15.12.2018
12:19:36
Будет множество

Вместо списаа

Маришка
15.12.2018
12:19:44
Там же по принципу хеша работает

Yergali
15.12.2018
12:19:45
Куда сообщение? Sms?
мне нужно отправить сообщение к боту через код

Маришка
15.12.2018
12:19:46
Тоже

Tishka17
15.12.2018
12:20:05
мне нужно отправить сообщение к боту через код
Какому боту? ВКонтакте, ирц, вотсап?

Yergali
15.12.2018
12:20:23
ivan
15.12.2018
12:20:42
Ща бы структуры данных самые базовые не знать Даже set

Tishka17
15.12.2018
12:20:58
телеграм боту
https://github.com/pyrogram/pyrogram

первое что нашел

ivan
15.12.2018
12:21:41
PyTelegramBotAPI

Это классика

Tishka17
15.12.2018
12:22:22
PyTelegramBotAPI
А боты могут с ботами общаться через апи?

Google
Tishka17
15.12.2018
12:22:46
Ну вот

Aragaer
15.12.2018
12:23:18
а, блин, надо считать только полные раунды!

Yergali
15.12.2018
12:23:35
PyTelegramBotAPI
мне нужны ответы

Tishka17
15.12.2018
12:25:57
Ну я вообще хз как посчитать неполный

Yegor
15.12.2018
12:26:27
print(len(data)) start = datetime.datetime.now() zz = list(dict.fromkeys(data)) print('Количество: %s за: %s сек' % (len(zz), datetime.datetime.now()-start)) start = datetime.datetime.now() zz = set(data) print('Количество: %s за: %s сек' % (len(zz), datetime.datetime.now()-start)) 30122 Количество: 30116 за: 0:00:00.022001 сек Количество: 30116 за: 0:00:00.005000 сек

мдоо

Tishka17
15.12.2018
12:27:50
set в лист обратно не преобразовал

Aragaer
15.12.2018
12:30:12
ну у меня берется список тех, кто еще может мутузиться и по нему считается

раунд полный, если все из этого списка успели поработать прежде, чем помер последний враг

то есть если два гоблина бьют эльфа с 2 хитами, то первый убил, а второй ничего не делал = раунд неполный

а если 4 хита, то оба ударили = раунд полный

Yegor
15.12.2018
12:32:28
set в лист обратно не преобразовал
Угу, а как такие штуки преобразовывают?

list(set(data)) ничего хорошего не сделал

Tishka17
15.12.2018
12:34:01
http://codephoto.ru/i/Iu9wp

Set быстрее в два раза



раунд полный, если все из этого списка успели поработать прежде, чем помер последний враг
А. Ну я проверяю наличие соперников до хода. Так что у меня любой раунд неполный

TpouHuK
15.12.2018
12:35:43
http://codephoto.ru/i/Iu9wp
о, новые шаблоны)0

Tishka17
15.12.2018
12:36:55
о, новые шаблоны)0
Ну я страничку ещё недели две назад причесал

А картинки те же

Страница 7411 из 9768