Этого треда уже нет.
Это копия, сохраненная 26 июля 2018 года.

Скачать тред: только с превью, с превью и прикрепленными файлами.
Второй вариант может долго скачиваться. Файлы будут только в живых или недавно утонувших тредах. Подробнее

Если вам полезен архив М.Двача, пожертвуйте на оплату сервера.
Python Python 1188085 В конец треда | Веб
F.A.Q. https://github.com/TheKnightsWhoSayNi/info/wiki/Hat
Для кода https://repl.it/languages/python3
Не скидывайте сложные исходники в тред, у двоща ебанутое форматирование
Книги https://yadi.sk/d/tArKKuQu3Kejuq

В предыдущей серии >>1182179 (OP)
2 1188088
Опять нумерацию проебали. Это третий раз уже?
3 1188089
>>188088
Номерацию проебали уже раз 20, ты знаешь, сколько тут питон треды существуют?
Да и зачем нумерация, если треды все равно никуда не сохраняются, только дрочить на нее
4 1188099
def atata():
..try:
....return 'пики точены'
..finally:
....return 'хуи дрочены'

print(f'Куда же присядет анон? Да это же {atata()}!')
5 1188101
>>188099
Во-первых синтакс эррор, во-вторых форматирование так не работает.
6 1188106
>>188101
С разморозкой!
7 1188110
>>188101

>Во-первых синтакс эррор


Чо?
try - пытайся сделать
finally - сделай в любом случае после блоков \эксепт
8 1188111
>>188110
try\except
фикс
9 1188113
Кто-нибудь пишет что-то интересное во что можно влиться с вами? Инетересуют сайты, агрегаторы, сервисы. Стек — питон, само собой.
sage 10 1188141
>>188101

>Во-первых синтакс эррор


Какой нахуй синтакс эрор если он вернет "пики точеные" и не дойдет до файнали
11 1188153
>>188141

>не дойдет до файнали


Вам перезвонят. Ну когда ж вы, чёрт возьми, уже научитесь не писать сюда то, в чём не уверены, имея возможность проверить это за 10 секунд в интерпретаторе?
12 1188157
>>188101

> форматирование так не работает.


Хах, скоро 3.7 выйдет, а тут еще божественным 3.6 не обмазались.
13 1188165
>>188153
Но интрепретатор как раз показал
"Куда же присядет анон? Да это же хуи дрочены!"
Ошибки нет
14 1188166
>>188165
Но тот анон с пиками обосрался, да
15 1188170
>>188165
Тот, кому я отвечал, говорил прямо противоположеное же.
16 1188239
>>188085 (OP)
Сап, питонач. Вкатываюсь в ООП потихоньку и нихуя не могу въехать в магические методы.
Если с __add__ все более менее понятно, где он назначает первый экземпляр self, второй other и при попытке операции сложения возвращает класс со сложенными значениями. То принцип работы с __truediv__ и дохулиардом других методов у меня не укладывается в голове. Поясните чо да как, с меня как всегда NoneType.
17 1188281
>>188239
Что тебе не понятно-то, блин? Так же вызывается и два аргумента (делимое и делитель) передаются при операции деления (при заимпорченном division'е из __future__).

>возвращает класс со сложенными значениями.


Что напишешь, то и вернёт.

>и дохулиардом других методов


Ну блядь, возьми да прочитй, когда они вызываются.
(5).__sub__(3) == 2
18 1188284
Я тутова это, впервые вкатываюсь в погромирование (хуманитарий типо).
Решил начать с Python. Читаю учебник https://automatetheboringstuff.com.
Вот, пока в начале, дошел до “Truthy” and “Falsey” Values.
И чет нипанятна, там пример такой:

name = ' '

while not name:

print('Enter your name:')

name = input()

Можете за это вот эту строку пояснить "While not name".
Про операторы while я понимаю, и я бы написал while name=' ' и т.д. А тут непонятно с этим not, и в учебнике нихуя не объясняется.
19 1188288
>>188284
Погугли логические операции.
20 1188296
>>188284
Смари
Сейчас нейм что - правильно, целое нихуя. Тут целое нихуя равняется к False.
После ввода любого name оно уже будет чем-то, хоть там твое имя, хоть хуй собачий. Тут хотя-бы что-то равняется к True.
21 1188303
>>188296
это я понимаю, что int 0, float 0.0, str ' ' - это False.
я строку while not name не понимаю.
А конкретно этот not, он тут какую функцию выполняет и к чему привязан?
22 1188311
>>188303
https://yandex.ru/search/?text=python логические операции
23 1188312
Очередное "самое лучшее GUI"
https://github.com/mherrmann/fbs-tutorial/blob/master/README.md
24 1188360
Здарова пацаны.
Сам по жизни фулл стак жс макака, но хочу научиться писать рест апи на питуне, чисто для общего развития.

Сегодня пол дня читал доки к джанге, поиграл с чистой джангой и оказалось, что нужна не она, а некий рест фреймворк.

Поясните мне, как это должно работать? Вот эта парадигма Model - Serializer - ViewSet.

В модели мы описываем схему документа (собираюсь юзать монго).
Сериалайзер описывает, как документ, полученный из модели, должен превращаться в JSON (и наоборот).
ВьюСет же содержит набор API методов?

Может у кого-то есть репозиторий с таким стеком, чтобы я посмотрел, как он устроен, какая там файловая структура и тд?
25 1188369
>>188360
https://github.com/devslaw/django_rest_example

Гуглится за минуту. Основной фарш в папке apps.

Говно эта ваша жанга. Говно этот ваш 3д мир. Меня моя вайфу зовёт, некогда мне в такой тухляк вникать.
26 1188371
>>188360
Тебе не нужна джанга, попробуй nodejs или aiohttp
27 1188396
>>188360
Если чисто рест, то возьми Falcon
28 1188449
Аноны, нужно ли писать тесты для своего кода, который и так проверил на возможные варианты?
29 1188457
>>188303

> я строку while not name не понимаю.


Дословно - ПОКА НЕ name, что можно трактовать как ПОКА НЕ TRUE
Вот когда будет уже TRUE, тогда твой цикл перестанет крутиться.
30 1188458
>>188449
Как по мне, нужно обязательно вести чейнжлоги, и в особенности, когда пишешь "на один раз" - краткую документацию по коду. В один момент этот текстовый файлик сэкономит тебе туеву хучу времени.
31 1188469
>>188284
Пока bool(name)== False:
do something
Пока ты этим инпутом нихуя не впишешь в имя = будет продолжаться цикл
not name означает, что если нейм не ссылается на ненулевое значение - оно False
хуй знает как пояснить еще понятнее
32 1188470
>>188369
Спасибо.
>>188371
Ноду я и так умею. Джанга это первый шаг в мир питуна, который я изучаю фо фан.
>>188396
Нужна именно джанга.
33 1188471
>>188085 (OP)
кароче я учу классы, все покашо понятно, селфы там хуелфы
Иниты
Но нахуй они нужны ? ну всмысле зощем ? В каких случаях я не смогу использовать нормальные штуки, а только классы
и этот ваш пидор Марк Лутз меня так доебал, невозможно его читать, лучше читайте по оф. докам пайтона
Она у вас на компудахтере даже есть
34 1188480
>>188470
Ну тогда души джангу, ничего там страшного нет
35 1188502
помогите лоху-новичку, хз как гуглить
если человек отправляет телеграм боту какой-то текст, то как этот текст сделать, например, нулевым элементом массива или первым (добавлять еще ничего не надо), чтобы потом одним списком запринтить все его заметки, например. Вот кусочек кода:

notes['tutodin', 'tutdva']...
...if message.text == 'Заметка 1':
bot.send_message(message.chat.id, 'Теперь пришли мне ее')
????? = notes[0]
elif message.text == 'Заметка 2':
bot.send_message(message.chat.id, 'Теперь пришли мне ее')
????? = notes[1]...
print('Заметка 1:' + notes[0], '\nЗаметка 2: ' + notes[1])

помоги двачик
36 1188507
>>188502
Обычно такие вещи в бд сохраняют и потом читают из нее по надобности
37 1188516
>>188480
Душу потихоньку.

Как сделать шоткаты для консоли?
У ноды есть npm run scriptname, например, есть какой-либо аналог для жанги?
38 1188521
>>188502
>>188507
Как по мне лучше подзаебаться с pickle, чем начинать дроч с бд
39 1188531
>>188521
Или с shelve.
40 1188532
>>188507
>>188521
>>188531
Ну а как сами данные для хранения принять? или все через pickle надо делать?
41 1188536
>>188532
Тю бля, мне когда-то давно отвечали на то, как принимать хуйню, что пишет клиент, но я все проебал. Попробуй гуглить поперек, пока тебе не ответят.
42 1188542
>>188521

> лучше подзаебаться с pickle, чем начинать дроч с бд


C базами данных ему всё равно придётся познакомится, да и особо дроча там нет. Подрубил SQLite, на SQL`е накидал пару команд и всё.
А потом уже по желанию через ORM`ку какую всё организует.
43 1188543
>>188532
Как-как.
Читай доки своей библиотеки для ТГ, и сообщение юзера в БД
44 1188553
>>188085 (OP)
Сап. Кто-то в этом итт работал с Kivy? Есть пара вопросов:
- Можно ли сделать окно прозрачным? Это вообще в принципе возможно сделать не только в рамках сабжа? Или может есть какие-либо костыли?
- Есть ли готовый способ сделать возможность перетаскивания окна из любой точки?
45 1188585
Анон помохи! Уже больше недели, а то и двух бьюсь с проблемой. Пишу плагин для коди чтоб удобно смотреть аниме было с ресурса smotret-anime. Дело в том, что на этом сайте большинство видео разбиты на несколько частей. Мне было бы на это похуй, но каждое видео сопровождается субтитрами, собственно для этих двух потоков нужен единый таймлайн, а возможно ли как-то решить это в рамках платформы kodi я пока не нашёл. Я уже совсем отчаялся, не хочется изобретать велосипеды и делать криво работающее дополнение, а хочется шоб запустил и попёр!

Ещё проблема конечно же в безграмотности, ведь в мультимедиа я вообще не ебу что куда. В общем.

Дано:
Две или более ссылки на серию, которые нужно воспроизвести как цельный эпизод с единым таймлайном (из-за тайминга сабов).

Идея:
После долгих раздумий появилась идея на клиентской машине ставить промежуточный сервер, который бы объединял эти два потока в один, просто каким-то хуем ставя их один за другим. Плеер на сайте просто же проигрывает их один за другим, а таймлайн у них заранее установлен.

Реализация:
Вот тут анон мне нужна твоя помощь! Подскажи, насколько идея хуёвая и вообще выполнима ли она? Если да, то просто укажи путь на инструменты, реализации чего-нибудь подобного, хоть что-нибудь, просто скажи как это гуглить!
46 1188587
>>188585
Проще формировать плейлист из этих кусков + нарезать сабы для каждого куска.
47 1188590
>>188587
Тоже идея. Пусть это не будет идеалом реализации, но звучит гораздо проще. Точнее в таком решении гораздо меньше неизвестных. Встаёт лишь вопрос как парсить сабы, а звучит он гораздо определённее чем та хуйня что я выше написал, где в реализации я не шарю от слова нихуя.
48 1188594
>>188590
Возможно даже нарезать сабы не придётся, нужно разобраться с форматами плейлистов. Начинай с тех что поддерживаются непосредственно в коди.
49 1188598
>>188594
Ну тут легче спрашивать какие нужны?
50 1188600
>>188594
Kodi supports PLS, Winamp M3U, Cue Sheets, and Kodi Smart Playlist (XSP) playlists.
51 1188601
>>188458
То есть, если я где-то накасячу, то смогу вернуть стабильную версию?
52 1188603
>>188458
То есть, если я где-то накасячу, то смогу вернуть стабильную версию?
53 1188606
>>188600
Это всё больше похоже на аудиоплейлисты. Вот если честно, я тоже нихера не эксперт по теме, но если будешь скачивать и собирать по частям, бери матрёшку:
https://matroska.org/technical/guides/faq/index.html

>How can i create Matroska files


Тебе нужен именно transmux.
https://mkvtoolnix.download/doc/mkvmerge.html

Стриминг конечно предпочтительнее, меньше возни, но вот не знаю насколько успешно это завяжется в коди, все эти smotri-anime пишут свои плееры чтобы усложнить жизнь тем кто хочет скачать или порезать рекламу. Ну и контент там обычно пережат до безобразия, очень мелкий fps, очень большие искажения, но таки да, всё есть, выбирай и смотри.
54 1188607
>>188449
Нужно. Чтобы можно было изменять код и не бояться что что-то отломалось.
55 1188609
>>188606
Да в том то и дело, что скачивать полностью и переделывать это не вариант абсолютно. Для этого есть торренты встроенные для... Ну в общем всё это не важно, да. Жаль конечно, про плейлисты ща гуглил, пытаюсь всё это дело в m3u загнать и посмотреть что получится.
В общем пока ковыряюсь. И на том спасибо
Безымянный.png11 Кб, 782x284
56 1188614
Подскажите, как организовать считывание данных в задаче http://pythontutor.ru/lessons/lists/problems/kegelbahn/
57 1188615
>>188601
>>188603
Не понял тебя. Ты так или иначе можешь вернуть стабильную версию кода. По крайней мере в пайчарме такая хуйня есть.
Алсо, возьми за привычку сохранять по отдельности сорцы с крупными изменениями.
Назвал там "залупа кентавра 0.3" и в чейнжлоге пишешь "0.3 - добавлено то, убрано другое".
58 1188629
Бля, как задетектить инпут сочетания клавиш? Например пробела и ЛКМ?
59 1188633
Объясните нюфане, почему во второй раз он использует if, а не elif? И так и так вроде работает. Что я упустил?
61 1188646
>>188633
Ну захотелось ему так, какая разница? В любом случае, если выполнится первое условие, то до второго и не дойдёт. К тому же, условия взаимоисключающие, так что даже если бы там был не break, то тоже разницы бы не было.
62 1188647
>>188633
Лучше конечно элиф, но если в задании автор показывает принцип работы брэйка или еще что, то не зацикливайся, это просто пример
63 1188651
>>188646
>>188647
Спасибо пацаны.
Я смышленый, да?
64 1188653
>>188651
Нет
Да)
65 1188706
>>188651
Ты умничка и у тебя все получится!
14914167285230.webm7,9 Мб, webm,
1280x720, 0:20
66 1188709
Бамп неотвеченному вопросу из предыдущего треда.
Хочу вкатиться в бекенд, прочитал Саммерфильда, Лутца, Бьюли. Я сначала думал, что надо теперь прочитать про Джанго, но я так понимаю, она именно про написание самих скриптов-обработчиков-запросов по стандарту wsgi, cgi, я хз уже, а хотелось бы ещё что-то по разработке в общем: как развернуть apache\nginx да и что из двух стульев выбрать, как туда свой Пистон вставить, какую из сотен бд туда пристроить. Что посоветуйте? Пока кончились питоно-книги читаю SICP, алгоритмы, и тереблю свой пистон на codewars.
67 1188715
>>188709
Открываешь docs на официальных сайтах, tutorial и устанавливаешь-разворачиваешь, для этого не надо талмуды читать. БД бери постгрес. А вот как раз алгоритмы почитай. Таненбаума ещё можно про сети, про операционные системы.
68 1188747
>>188715
Плюсую все, кроме бд.
Для начала и SQLite хватит, что б не ебаться с разворачиванием/подключением, а потом, как джангу освоишь, сможешь к БД приглядеться, может тебе монго подойдет, может постгрес.
69 1188749
>>188747
SQLite это довольно экстремальный вариант, предназначенный для встраивания в приложения, там есть множество неудобств и отклонений от стандарта. Разворачивание пг это apt-get install, systemctl enable postgres, редактирование пары строк в конфиге если вообще нужно, systemctl start postgres. И всё, psql в зубы и пошёл.
70 1188770
>>188749
Монга так же подключается, например, и интерфейс у неё подружелюбнее, чем скуль.
71 1188786
>>188770
В монге нет транзакций, каскадных удалений и много чего ещё. Да и зачем вообще монга, когда в пг уже завезли json fields?
72 1188818
Привет, анон. Почему этот код не работает для '0000'? Питонить начал недавно, не гнобите, пожалуйста!
73 1188819
>>188818
Можно, конечно, проверить на '0000', но это как-то некрасиво.
74 1188821
>>188818
Потому что 0 это False
75 1188827
>>188821
Уже посмотрел другие решения, оказывается есть метод isdigit, а я-то думал, что я гений.
76 1188848
>>188553
Бамп, что ли.
77 1188859
Аноны, что мне делать?
Есть функция которая не всегда принимает file, как мне ее переписать, либо как заменить file?
78 1188868
Привет, анон. Посоветуй какую-нибудь хорошую статейку по работе с API неважно, на русском или на английском, чтобы было хорошо расписано как оно работает и что с ним делать в том же питоне. Я совсем зеленый, информации куча, хочется, чтобы в одном месте и подробно.
79 1188871
>>188868
По созданию АПИ?
На сайте джанго рест фреймворка есть туториал, как раз тоже его прохожу. После нодовского экспресса пиздец голову ломаю.
80 1188872
>>188871
Не, именно по получению данных из него, и как он устроен, в целом. Че за токены, че за заголовки, че за json.

Всякие серверные фреймворки даже трогать пока боюсь, совсем зеленый. Хочу пока написать парочку парсеров для себя.
81 1188873
>>188872
Тогда не подскажу
82 1188879
>>188749
Ну а для склайта ничего настраивать вообще не надо.
Работать он через ОРМ будет и разницу не увидит и проблем не встретит.
>>188786

> зачем монга


Идите мат.часть учите и найдете применение
83 1188880
>>188872
Райан Митчелл - Скрапинг веб-сайтов с помощью Python
мимо ещё более зелёный
84 1188881
>>188880
Храни тебя господь, антоша.
85 1188882
Нужно быстро накидать дешманский интерфейс, но с гуи не дружу. Что лучше, сразу из коробки использовать tkinter или учить qt. И почему tkinter так хейтят?
86 1188883
>>188859
Неси функцию, с контекстом только
>>188872
Просто почитай на хабре том же про реализацию АПИ различными сервисами. Ну или зайди на любимый сайт/сервис, и поищи документацию/АПИ и будет тебе живой пример.
87 1188885
>>188715

>не надо талмуды читать


А как же "Learning Django with ur mom" и остальные? О чем они?

>БД бери постгрес


А чем она лучше MySQL?

>>188747
Уже развернул MySQL и все сделал.

>>188879

>Идите мат.часть учите и найдете применение


Какому-то анону из прошлых тредов советовали использовать монгу как кэш между приложением и большой БД. Без понятие, что это как и зачем.
88 1188892
>>188883

>Просто почитай на хабре том же про реализацию АПИ различными сервисами. Ну или зайди на любимый сайт/сервис, и поищи документацию/АПИ и будет тебе живой пример.



Там анон выше скинул книжечку, в которой таки все, что мне нужно - от работы с апи, до сохранения данных в базе данных и т.д. Но за совет спасибо.
89 1188896
>>188859
Объяснение проблемы просто пиздец, откуда вы такие берётесь?
Ткну в небо и скажу, что тебе нужны дефольные аргументы — https://docs.python.org/3/tutorial/controlflow.html#default-argument-values
90 1188897
>>188885
Развернул? Маладэц
Сворачивай

> использовать как кеш


Вполне хорошая идея.
Лучше не задавай здесь глупые вопросы, а возьми загугли, сравнение постгреса и монго, там будет очевидно где юзать постгрес, а где монго.
91 1188900
>>188892
А, ну да, тоже читал, но хуй знает, как по мне лучший опыт - практика.
Но книгу прочти, хорошо рассказано про парсинг страниц и инструменты.
92 1188906
Ловите, осваивайте, пасаны с конференции рекомендуют
https://github.com/pypa/pipenv/blob/master/README.rst
Снимок.PNG22 Кб, 834x261
93 1188908
>>188085 (OP)
Анончик, родименький, расскажи что я делаю не так? Чому вк не принимает мою пиктчу в виде байтов? В то время как в виде объекта io.BufferReader принимает аж бегом.
94 1188909
>>188908
BufferedReader* конечно
Все время путаю.
95 1188917
Может ли virtualenv не создаваться из-за кириллицы в пути к питону? https://pastebin.com/D3ratLG7

Или причина в чем-то другом? Помогите!
image.png18 Кб, 641x144
96 1188924
>>188908

> Чому вк не принимает мою пиктчу в виде байтов


Ну вот хуй знает
97 1188940
>>188917
Да, virtualenv не работал из-за кириллицы в названии, пофиксил.
98 1188957
>>188879
Аж интересно, о какой матчасти идёт речь. docs.mongodb.com я знаю почти наизусть.

>>188885
Ну хочешь бери MySQL, пг более цельно сделана и в ней больше фич. MySQL может быть полезной когда у тебя какой-то специфический ворклоад и там ты сможешь выжать дополнительную производительность используя какой-нибудь специфичный storage engine. Для новичка в общем-то большой разницы наверное и нет.

>>188906
Работает через раз.
99 1188958
>>188885

>Learning Django with ur mom


Вода водяная. Но если это твой первый фреймворк вообще, наверное смысл есть.
100 1188964
Суп анон. Писал вчера сюда по поводу плагина для коди. Краткая суть: нужно воспроизвести несколько кусков видео как один в рамках платформы kodi.

Вот ещё какая идея пришла.
Кто-нибудь может подсказать по какому принципу работает YouTube-dl? Ведь он по сути скачивает множество кусочков в один файл. Код читал, разобраться сложновато, но думаю что вполне возможно.

В общем идея такова, что может существует такая же возможность как в youtube-dl просто скачать несколько видеофайлов в один? Типа делаешь какой-нибудь with open(video.mp4): write url_video1.mp4, url_video2.mp4, url_video3.mp4...
просто в мультимедиа форматах я полный ноль и не знаю, вдруг там какие-либо маркеры начала и конца стоят которые нужно ‘обрезать’, также не знаю где и по каким правилам хранится метадата. В общем я был бы очень рад если бы ты анон подсказал мне здесь и направил на путь истинный. А пока я писал подумал почему бы просто не попробовать. Пойду пока и попробую.
101 1188966
>>188964
На ютубе не нужно сшивание:
https://github.com/nficano/pytube/blob/master/pytube/streams.py#L220
https://github.com/nficano/pytube/blob/master/pytube/request.py

Там они только переходят на раздельные аудио/видео файлы, но опять же, тайминг у них полный, без сегментирования.
102 1188967
>>188964
Ещё учти, даже если ты напишешь стрим-сервер, могут быть проблемы например с перемоткой.
103 1188976
>>188964

>Ведь он по сути скачивает множество кусочков в один файл.


Зависит от формата. Стримы ютуба в.ts, например, можно просто склеить. Не-стримы в mpeg-dash, вроде как, тоже, но обязательно нужен первый фрагмент. На какие-то другие фрагрментированные форматы вызывается ffmpeg для конвертации.
Но кажется мне, что тебя не одно из этого, а просто несколько отдельных видео файлов, тогда ffmpeg в помощь.
https://stackoverflow.com/questions/7333232/concatenate-two-mp4-files-using-ffmpeg

>просто скачать несколько видеофайлов в один?


Просто скачать легко:

>with open('video.mp4', 'wb') as f:


> f.write(urrlib.request.urlopen(url1).read())


> #<...>


> f.write(urrlib.request.urlopen(urlN).read())


Но велика вероятность, что это не сработает если медиа файлы самодостаточны, со своими хедерами и метаданными.

Так что, неси прямые ссылки на видео, тогда и сможем помочь. Не зная формата тут ничего, кроме ffmpeg'а, не посоветовать.
image.png36 Кб, 593x278
104 1188988
>>188966
Получается, что он просто "ложит" эти chunks рядом в один файл. И у меня была надежда что "а вдруг" это и с обычным mp4 сработает ещё не проверил, сейчас буду.
>>188967
Они скорее всего будут. Ну, дело сейчас даже не в сервере, а в самой реализации, хз с какой стороны подступиться. Знаний не хватает. Думаю доки стоит по формату почитать, может чего яснее станет.

>>188976
Формат mp4. Ссылки например на мадоку, кину качеств похуже если вдруг кто-то тоже захочет поэкспериментировать
https://pastebin.com/H40tu43h

Просто "положить" файлы вместе не получилось. Скачался и записался один файл. Мб в коде можно что-то придумать, пока поковыряю эту идею, вдруг заработает "всё просто" и с хидерами, и метаданными (вряд ли, но почему бы и не попробовать).
Думаю после этого доки на формат почитать, и пытаться выпиливать из файлов метаданные перед записью. mp4 это ведь как раз формат для даша.
105 1188989
>>188988
Лол, конечно один, переменную не переименовал...
106 1188992
>>188988
Блин фигню написал, опозорился в скриншоте. Думаю их нужно просто конкатенировать, после функции read это же просто строки получаются. Не знаю правда, что из этого получится.
107 1188996
>>188976
Да, способ "просто положить их рядом" не сработал. Проигрывается только первый файл.
108 1189009
>>188924
Покажи как это правильно сделать, плес.
109 1189084
>>188996
Разумеется, плеер-то читает метаданные этого первого файла, а что там после него находится уже и плевать. Я об этом и говорил.

>>188992

>после функции read это же просто строки получаются.


Не строки, а байты.

>>188988
В общем, как я и говорил, просто отдельные короткие ролики.
Я вижу тут несколько способов:
1. Лёгкий. Потерять возможность стриминга, скачать все части, ffmpeg'ом их объединяешь без перекодирования и отдаёшь сервером уже полное. Долго ждать.
https://trac.ffmpeg.org/wiki/Concatenate
2. Сложнее, но "правильнее". Создаёшь m3u8 плейлист, на сервере скачиваешь и конвертируешь отдельные части в mpeg ts, подправляешь start offset у всех, чтобы плеер нормально загружал одну часть за другой. Так как всё скачивать сразу не надо, #EXT-X-ENDLIST в плейлисте не держишь, и с каждой новой скачанной и сконвертированной частью обновляешь плейлист (так что, с кешами осторожнее). В итоге и таймлайн норм, и стриминг есть.
3. Хардкор. Не уверен, что сработает, но ты можешь попробовать: в первой части подправить данные длительности в mvhd и каждом tkhd на полную серию, во всех частях поудалять эти хедеры, соединив данные треков, ну а клиенту высылать данные на один запрос из нескольких источников по порядку. Что там ещё в контейнере нужно будет поменять я без понятия, придётся тебе много всего почитать в интернете и сидеть разбираться. По сути, это будет что-то типа ffmpeg'шного concat'а из пункта 1, но на лету и с возможностью быстрого старта. (Потребуется, правда, параллельно скачивать все серии, чтобы из первые килобайт повыдёргивать длительности треков.)

В общем, развлечение на долгие недели ты себе, считай, нашёл.

Что такое коди я понятия не имею и гуглить лень, если что.
110 1189122
ЧЯДНТ?
image.png17 Кб, 616x105
111 1189124
>>189122
Отвалилось.
112 1189128
>>189122
>>189124
Юзаешь виндоус
image.png20 Кб, 836x106
113 1189132
>>189128
И как фиксить. Посмотрел в sys.path, там пикрил. Это нормально?
114 1189134
>>189132
Причем так - работает. Я не понимаю.
image.png16 Кб, 614x138
115 1189135
116 1189136
Хочу набросать что-то свое для гарантированного удаления метаданных (включая маркеры которые пихаются в нестандартные места, куда позволяет формат, или вообще дописываются плейнтекстом за конец файла). С картинками просто, скрипт считывает картинку в массив и создает из него новое чистое изображение. А вот как на питоне считать и пересоздать пдфку, mp3, mp4? Суть в том чтобы извлекать только данные относящиеся
непосредственно к контенту и избавляться от всего остального.
117 1189164
>>189132

>И как фиксить


Накатить линукс или купить макбук, очевидно.
118 1189171
>>189136
Под каждый формат тебе придётся свой скрипт писать. Читать документацию к типу файла и соответственно обрабатывать, либо с помощью сторонних либ. Формально нужно просто перекодировать, тогда лишнее отпадёт. Но на магическую функцию не надейся.
119 1189179
>>189084
Спасибо анончик за старания. Жаль большинство вариантов не подходит. Если брать конвертирование "на лету", то это очень много ресурсов системных забирает. Сервер я планировал делать на клиентской машине, а учитывая что kodi (это ранее xbmc, мультимедийный центр для просмотра кинца\сериалов) ставится на андроид смартфоны\приставки и просто дряхлые домашние серваки, то этот вариант не подходит совершенно, учитывая что пытаюсь я эту хуйню обойти ради видео в качестве 1080р.
Качать тоже не очень, т.к. для этого есть хорошие дополнения стриминга торрентов (но они не всегда удобны), тогда моя задумка немного теряет в преимуществах.
А вот по хардкору я тоже думал сделать именно так, уже доки на формат нарыл, благо там всего 20 страниц. Да, затея люто геморная, но сейчас помимо этой задачи ещё дел выше крыши, поэтому пока отложу. Там вроде на форуме ответили что эту задачу можно решить в рамках самого этого медиацентра, но звучит прохладно.
120 1189192
Чессказать не понимаю в чём проблема таки взять и скачать. Если есть 1080р стриминг, значит канал нормальный. Зачем именно коди? Берёшь нормальный кудахтер, пишешь скрипт который качает и сшивает всё вместе обычным ffmpeg, с него же стримишь, да хоть в тот же коди. Время проходит — автоматически удаляется. Всё, проблема решена. Разве что ждать какое-то время после "заказа" понадобится. Но обычно это полчаса с таким-то каналом. Зато смотришь и не беспокоишься уже ни о чём.
121 1189240
А элементы среза сложить между собой можно?
122 1189256
>>188883
Переписал функцию уже, но все равно спасибо
анон по-поводу файла
123 1189286
>>189240
можно
124 1189294
>>189286
Спасибо.
125 1189309
Аноны, не знаю куда обратиться, подскажите если кто знает хотя бы примерно в какую сторону гуглить и что может быть не так.
Пытаюсь развернуть свой проект на впске, настраиваю supervisor + gunicorn, когда пытаюсь стартануть supervisor получаю такой трейсбек в логах
File "/home/svalee/quests_backend/../venv/bin/gunicorn", line 7, in <module>
from gunicorn.app.wsgiapp import run
ModuleNotFoundError: No module named 'gunicorn.app'; 'gunicorn' is not a package
сам gunicorn стартует, если с директории проекта написать:
gunicorn system.wsgi

по юрлу два файла с настройками supervisor и gunicorn
dpaste.de/bF7P
В чем может быть проблема?
126 1189317
>>189179

>то это очень много ресурсов системных забирает


Не забирает. Нужно сменить только контейнер, само видео не кодируется.

>ffmpeg -i part2.mp4 -acodec copy -vcodec copy -muxdelay 0 -muxpreload 0 -output_ts_offset 251.425 part2.ts


Выполняется за доли секунды.

ffmpeg умеет скачивать из интернета, и при этом направлять вывод в stdout.

После того, как я вышеприведённой командой сконвертировал первые четыре части (мгновенно, напоминаю) и сделал вот такой плейлист https://pastebin.com/1eTE6LdT , можно спокойно запускать

>python3 -m http.sever 8000


в директории с этими файлами, идти на https://video-dev.github.io/hls.js/demo/?src=http://127.0.0.1:8000/index1080.m3u8 и радоваться цельному стриму. Ну, главное не забыть указать правильные оффсеты для частей 2-4 (можешь взять для тестов из моего плейлиста, оффсет для части N равен сумме длительностей частей от 1 до N-1).

Ну и остаётся дело за малым:
1. Скачать первые 200байт видео, узнать длительность очередного видео из mvhd
https://www.cimarronsystems.com/wp-content/uploads/2017/04/Elements-of-the-H.264-VideoAAC-Audio-MP4-Movie-v2_0.pdf тут легко и подробно расписано где что находится, struct в помощь.
2. Запустить ffmpeg с нужными параметрами, ловить выход, перенаправлять в запрос от клиента. Ну или скачивать на диск и потом с него читать, если планируется несколько одинаковых запросов на один сервер.
127 1189346
>>189317
Из минусов, к сожалению, необходимость ожидания полной загрузки куска, по крайней мере в случае с hls.js, а для 4-х минут 1080p это занимает значительно время.

Как вариант, оценить скорость скачивания и примерную длительность (я так думаю, там всё на сайте по ~4 минуты идёт), скачать первые 30 секунд и оборвать ffmpeg, а затем же качать целиком первую часть снова.
Прелесть плейлиста и .ts (а именно вписанного в него оффсета) в том, что я могу иметь такое плейлист — https://pastebin.com/4iMp42zZ в котором первые 30 секунд p0.ts и p1.ts идентичны, однако так как p0.ts маленький, то и видео играть начнёт раньше, и когда придёт время играть 31-ую секунду, он спокойно переключится на p1.ts и продолжит с нужного места.
image.png54 Кб, 1188x276
128 1189368
Почему я все еще могу получить ответ, будучи незареганым?
image.png38 Кб, 556x268
129 1189384
А тут получаю "CSRF Failed: CSRF token missing or incorrect." несмотря на AllowAny
130 1189387
>>189346
Собственно, вот всё то, о чём я говорил https://pastebin.com/KSCV7aJ0
Ну, кроме короткой первой части. Способ рабочий, вручную проверил, но в коде этого нет (это ж надо из ffmpeg'а stderr перехватывать с длительность, ну его нахуй).
Запускаешь, идёшь на всё ту же демку hls.js и направляешь на локальный плейлист и радуешься. По желанию можешь раскомменитить или заменить ссылки (которые в коде на 360, если что).

В общем, доводить вещи до конца не моя специальность, свою долю интереса я вынес, дальше уже сам.
131 1189411
>>189317
>>189346
>>189387
Большое спасибо за инфу. У меня настроение уже заебало прыгать от надежд и разочарований с этой темой. Сегодня, спустя неделю после запроса, прислали наконец api к сайту, которое для решения задачи нихуя не поможет.
В общем пердолиться по-новой начну уже завтра, сегодня надо передохнуть. Спасибо анон за труды! Сотни нефти!
132 1189475
>>188553
Бамп.
image.png108 Кб, 1124x678
133 1189483
Ребят, помогите с заданием. Кто может решить лучше? Этот код делает что надо, но я постоянно ловлю таймауты. Как сделать его быстрее?
134 1189494
>>189483
Можешь попробовать вместо удаления из одного массива просто создать новый, и переносить туда непротивоположные инструкции в else'е.
У меня такое решение там висит с давних времён, только с "лишней" рекурсией спойлер: в отличие от красиво сделанного бест практисес. Всё ок работало, но может ужесточали требования, не знаю.

При удалении i-ого элемента питону нужно в памяти подвинуть все следующие (n-i) элементов. Соответственно, удалять первый элемент из миллионного списка довольно затратно. Добавлять же новый в конец (или удалять из конца), не считая моменты перевыделения памяти, очень дёшево.
PYTHONREICH.jpg117 Кб, 1280x720
135 1189495
>>188085 (OP)
Guten Morgen, Genossen! Heil unser'm Führer Van Rossum! Python Heil!
136 1189503
>>189483
если нет ограничений по памяти, то я бы разбирал последовательность через стек (если попался "противоположный" элемент, то делаем pop и переходим к следующему, иначе push), содержимое которого вернул бы в виде массива.
137 1189624
>>188360
спасаю твою жопу. забей хуй на джангу и бери айоху, забей хуй на рест и бери джейсон-рпц. в добрый путь
138 1189627
>>189624
Поздно, братишка, я уже малёхо разобрался и написал кусок апи.
139 1189629
>>189627
ах ты вонючка ебаная, чтоб у тебя мать сдохла в муках! тьфу блять
140 1189631
>>189627
бросай нахуй, я тебе серьезно говорю ))
141 1189639
>>189631
Что с жангой не так?
142 1189657
Помогите запустить или переписать так, чтобы оно заработало:
Это декриптор для DES пароля с известным ключом

https://pastebin.com/QHKHhFpN

При запуске ошибка:

$ python dec.py
Traceback (most recent call last):
File "dec.py", line 61, in <module>
f_in = open(sys.argv[1],'r')
IndexError: list index out of range
143 1189661
>>189657
Бля, ну поставь нолик вместо единички, и зачем вообще так по ебанутому открывать файл?
144 1189670
>>189661

>Бля, ну поставь нолик вместо единички


Поставил, но чет хуйня

python2 dec.py
[] Huawei Password Decryptor
[
]-----------------------
[+] User: ('local-user'
[+] Password type: in
[+] Password: line)

>так по ебанутому открывать файл?


Могу еще так
145 1189687
Люди добрые. Как настроить в Visual Studio Code дефолтный дебаггер для питона? Эти суки после какого-то обновления сделали так, что нужно теперь сперва открыть папку, и потом там автоматически внутри создается папка .vscode с конфигурацией launch.json, где и выставлен дебаггер. Но мне нужно, чтобы открыл любой питон файл и сразу можно было дебаггить, собственно как раньше и было. Сейчас же блять после нажатия на зеленую стрелочку, сверху вылазит две опции Python и Python Experimental, которые нужно каждый раз вручную кликать, это бесит.
146 1189715
>>189657
Ты пытаешься добарться до первого аргумента, но при этом не передаёшь ни одного.

>py3 dec.py 1 a mamasha


>sys.argv[1] == "1"


>sys.argv[2] == "a"


>sys.argv[3] == "mamasha"


Ты же просто py3 dec.py вызываешь. Какой ты надеешься файл откроется-то в твоём коде?!
147 1189740
3.6.5 or 3.7.0?
148 1189742
>>189494

>При удалении i-ого элемента питону нужно в памяти подвинуть все следующие (n-i) элементов. Соответственно, удалять первый элемент из миллионного списка довольно затратно.



Ха, а я думал, что удаление элемента из списка работает так же, как удаление файла на пк: снимаем галочку с 'занято' и никогда больше не видим этот элемент. А оно вот так оказывается. Тогда ясно, почему таймаут был. Спасибо.
Не знаю, где ты там смог рекурсию воткнуть, кстати. Я сразу сделал как бест практис, только с try except IndexError вместо if список. Мне кажется поймать IndexError когда он выстрелит из-за пустого списка легче, чем проверять, а не пустой ли список, на каждой итерации.

>>189503
Во, вообще классная идея, так и сделал. хотел сначала добавлять по элементу, при этом смотря на следующий, и проверяя, а не противоположны ли они. со стеком намного меньше проблем
149 1189746
>>189624

>джейсон-рпц


Ебаный стыд, зачем я загуглил это кирилицей?
hdt565fsdh.webm1,5 Мб, webm,
640x360, 0:21
150 1189814
Анон, помоги! С меня нихуя.
def string_to_date(string):
"""
Перевод строки формата "ГГГГММДД" в объект datetime
"""
return datetime.datetime(year=int(string[0:4]),
month=int(string[4:6]),
day=int(string[6:8]))

>>>string_to_date('20180514')


ValueError: invalid literal for int() with base 10: '5-'
151 1189819
>>189814
Разобрался
152 1189826
>>189819
И как надо?
153 1189866
>>189740
3.6.5 сейчас
3.7.х через пару месяцев
154 1189867
>>189826
У меня эта дата идет в другие функции. Косяк там
155 1189879
Подскажите нубу:
Есть скрипт на python который выполняется через cron раз в 10 минут.
Необходимо вставить условие в скрипт, что бы часть кода выполнялась раз в сутки. Куда копать ? Можно брать unixtime и от него высчитывать но это как то криво, мне кажется.
156 1189881
>>189879
Вынести эту часть кода в отдельную функцию и сделать два крона.
157 1189886
Как мне из bytes объекта получить строку битов вида 0101010?
158 1189888
>>189881
Это очевидно, но у меня нет доступа к крону на хосте.
159 1189891
Добрый вечер, Аноны. Вопрос не сильно подходит по тематике, но надеюсь кто-то из вас сталкивался с таким вопросом. В общем, я купил ноут, и иногда пишу на нем когда не дома. Когда дома - комп. Так вот вопрос - как я могу объединить компьютеры, что бы писать код на ноуте, заливать его куда-то, а дома просто скачав откуда-то продолжать работу.
160 1189893
161 1189895
>>189893
спасибо
162 1189906
>>189742

>Не знаю, где ты там смог рекурсию воткнуть


Ну я проверял пару элементов и если они не противоположны — добавлял первый в новый, "чистый" список и шёл дальше проверять следующую пару входного. Соответственно, если противоположными окажутся элементы 1 и 4, в моём "чистом" они всё равно окажутся, а значит нужно пройтись уже нему, чтобы почистить:

>вход = ['n', 'w', 'e', 's', 'e', 'n']


>выход = ['n', 's', 'e', 'n']


>рекурсия


>вход = ['n', 's', 'e', 'n']


>выход = ['e', 'n']



%%глупенький был тогда, топорно решал.%
163 1190072
>>189657

>


>$ python dec.py



запускай так
$ python dec.py file
164 1190195
https://repl.it/repls/SorrowfulObeseProfessional
Нужно получить из каждого листа в myarr элемент соотвествующий idx, то есть для первого листа нужно получить элемент находящийся по индексу который расположен в myidx на первой позиции, и так далее.
Как?
165 1190199
>>190195
myarr[myidx]
166 1190204
>>190199
Ты вопрос не понял. Так мне возвращается лист, а мне нужно
для каждого листа получить элемент по индексу указаному в idx.
167 1190205
>>189886
''.join(bin(b)[2:].ljust(8, '0') for b in b'abc')
168 1190210
>>190204
myarr[np.arange(0, len(myarr), dtype=int), myidx]
169 1190220
Суть такова. Если в конце скрипта не обнулить список, то происходит резкий скачок потребления памяти. Пикрилз.
В чем причина такого скачка? Ведь цикл закончился, и, кажется, должно произойти его пимное завершение без очистки списка.
170 1190221
>>190220
*мирное завершение
171 1190230
>>190220
А нет никакого скачка. Вон он там сожрал всю память под этот ебунячий список, дальше поработал с ним, вышел, память освободилась.
172 1190236
>>190230

>А нет никакого скачка


/proc/meminfo фиксирует резкую убыль SwapFree
173 1190238
>>190236
Ну возможно. В питонах же каждый новый float это новый объект в памяти, вот и идёт постоянная аллокация. Потом запускается сборка мусора, которая тоже что-нибудь себе аллоцирует, вот и скачок. Под такие задачи нужно numpy использовать.
174 1190265
>>190220
Если хочешь более эксплицитно, то используй ключевое слово del.
del x
175 1190297
>>190205
Сраный for. Я сидел и бился в конвульсиях, почему я не могу bin(b'a'), а оказывается bytes объект это сраный контейнер всегда, из которого числа надо доставать. Спасибо.
176 1190298
>>190238
>>190265
спасибо
177 1190330
Анон я заебался. Мне нужно асинхронно загрузить от 2 до 20 линков и сохранить все данные в список, например.
С этим отлично справлялся gevent и grequests, но как только я запустил свой код там, где он должен работать, работать он перестал из-за обезъяних патчей и выхода нет.

Блядь, как!? КАК? Мне просто нужно загрузить несколько сайтов, сука неужели так сложно написать пример как это сделать асинхронно на twisted или tornado пиздеееец!! Нихуя не понимаю, помоги анон.
Питон должен быть 2.7, поэтому либо twisted либо tornado.
Просто напиши или дай ссылку, как мне получить параллельно респонсы с двух сайтов, МОЛЮ!
178 1190334
>>190330
А нахуя асинхронно
179 1190335
>>190334
Ну параллельно, асинхронно. Потому что ссылок 20, если они выполняются синхронно, то это занимает 30 секунд, а если асинхронно то 10
180 1190382
>>190297
Ну можно ещё схитрить на самом деле:
bin(int.from_bytes(b'abc', byteorder='big'))[2:]
181 1190388
>>190330
https://docs.python.org/3/library/concurrent.futures.html#threadpoolexecutor-example

Вообще вроде бы скрейпи умеет это всё асинхронно тащить. Там как раз для пауков всякая всячина.
182 1190389
>>190297
Ну ещё меня тоже удивило что (b'abc').hex() есть, а bin нет. Можно предложить Гвиде это в интерпретатор.
183 1190406
>>190388
futures вроде для 3 питона. Вот тоже натыкался на scrappy, пиздец. Вот анон, меня прям берёт грусть тоска, вот не знаешь ключевого слова, и хоть какие аналогии пиши в запросах гугла всё равно в ответ он будет говном кормить. Мне часов 4-5 потребовалось, чтобы нарыть, что scrappy умеет в эту хуйню, и то, краем глаза чисто случайно в ответах на стаке увидел. Ну, тащем-та это уже не важно. Буду иметь в виду. Нашёл замену grequests в виде erequests лол. Работает немного дольше, но работает
184 1190437
Двач, помоги. Я хочу сделать небольшой бекенд для своего прожекта. Суть в том, чтобы при обращении к беку, бралась строка со всеми значениями из большой матрицы в csv и отдавалась жсончиком в виде столбец-значение для конкретной строки.
И вот я туплю че-то, потому что через django rest framework я делал только по моделям сериалайзеры, а как тут поступить?
Нужно какую-то кастомную вьюху пилить, или как?
186 1190552
>>190473
Я не понял, что это и нахуя оно вообще.
Мне нужен не csv на выходе, а чтобы при обращении к, допустим, /items/[id пользователя] через pandas я находил бы нужную строку и брал оттуда данные. А потом уже возвращал в реакт.
С матрицей часть я всю сделал уже необходимую, я не понимаю, как мне это в рест апиху добавить.
187 1190563
Антуаны, скиньте мб заданий каких начального уровня.
Вроде разбираюсь, а воображения придумать задание - нет.
Не скипайте, с меня как всегда - нихуя
188 1190579
>>189164
Пошёл нахуй, блять, с такими советами.
мимо
189 1190602
>>190552

>С матрицей часть я всю сделал уже необходимую


Т.е. вся информация в SQL-базе? Если нет, тогда не сделал.
190 1190603
>>190563
http://www.codeabbey.com/index/task_list
Если совсем начальный - кодкомбат.
>>189132
Попробуй анаконду накатить, говорят хорошо сделали.
Сам не питонирую на винде, не знаю.
191 1190604
Анон, помоги мне, я сейчас ебанусь. Как пользоваться VScode'ом ебаным? Вот я прочел их ебаный тутор с официального сайта, поставил venv, pylint, прописал настройки, и блять нихуя.
Что написано в настройках? "python.linting.maxNumberOfProblems": 100 . Сколько ошибок он отображает? 1. Одну ебаную ошибку, всегда.
Что написано в туториале? "Linting runs automatically when you save a file, and you can run manually using the Python: Run Linting". Что происходит при ctrl+p Python: Run linting? Нихуя. Вот у меня ошибка ALE BLYA, я эту строку делаю пустой, пишу Run linting, и после небольшой прогрузки, эта хуйня отмечает то же самое, теперь уже пустое место. И перемещается на следующую ошибку только посте ctrl+s, т.е. после сохранения файла. Это я ебанутый, или вскод? Я же все сделал так, как указано в официальной документации:
https://code.visualstudio.com/docs/python/linting
Установил, настроил, не работает.
Вопрос: как заставить это работать? Как сделать так, чтобы линтер показывал сразу все ошибки, а не только 1? Как сделать так, чтобы линтер работал, когда выполняю 'Python: Run linting', а не только на сохранение файла? Почему все так хуево?
image.png72 Кб, 1090x316
192 1190605
>>190604
Настройки отклеились
193 1190631
>>190579
Обновления на десяточку накатил уже, мань?
194 1190635
>>190631
Прыщеблядь, сгинь. Если не осилил окна - неча и рот открывать.
мимо сижу на семерке, не обновлялся несколько лет
195 1190656
>>190602
Это еще зачем?
Там в матрице и так 6 млн записей, она общитывается секунд 10 на моем пека и так, через бд вообще вечность ждать буду.
Неужели никто из анонов не знает? :(
O9WgoyC3NXmS6WZVwX2zJumsuVwhNbeBL2IRxpOogOs.jpg156 Кб, 585x767
196 1190658
>>188085 (OP)
Это снова аноний с удалением/изменением строк в текстовом файле. У меня полторы недели не было интернетов, так что отписываюсь так поздно.

Первым делом хочу поблагодарить советчиков за помощь с подсказками для решения этой проблемы. На данный момент я добился следующего кода для замены строки в текстовом документе вида:

Скушай
еще
этих
французских
булок


from shutil import copy
from os import unlink

copy(textfile.txt, backup.txt)
with open(textfile.txt, 'w') as file1, open(backup.txt, 'r') as file2:
----for line in file2.readlines():
--------file1.write('' if line == 'еще\n' else line)
unlink(backup.txt)


Итог по файлу:

Скушай
этих
французских
булок


Что просто прекрасно. Но после этого я с разбегу впечатался в кирпичную вкладку, когда захотел стереть ДВЕ строки.
Я использовал два способа:
1) Пытался свести две строки в одну:

...
--------file1.write('' if line == 'еще\nэтих\n' else line)


что не помогло: не изменилось ничего.

2) Пытался использовать несколько if'ов одновременно:

...
--------file1.write('' if line == 'еще\n' or line == 'этих\n' else line)

(аналогично, если использовать более громоздкие if'ы для каждой строки отдельно)

что привело к тому, что стирается только последняя указанная строка (то есть если if-statement'ов дохуя, сотрется почему-то только последняя из указанных, хотя по логике все if'ы должны срабатывать одновременно, ибо они не elif'ы).

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

Что я упускаю, подскажите, пожалуйста.
O9WgoyC3NXmS6WZVwX2zJumsuVwhNbeBL2IRxpOogOs.jpg156 Кб, 585x767
196 1190658
>>188085 (OP)
Это снова аноний с удалением/изменением строк в текстовом файле. У меня полторы недели не было интернетов, так что отписываюсь так поздно.

Первым делом хочу поблагодарить советчиков за помощь с подсказками для решения этой проблемы. На данный момент я добился следующего кода для замены строки в текстовом документе вида:

Скушай
еще
этих
французских
булок


from shutil import copy
from os import unlink

copy(textfile.txt, backup.txt)
with open(textfile.txt, 'w') as file1, open(backup.txt, 'r') as file2:
----for line in file2.readlines():
--------file1.write('' if line == 'еще\n' else line)
unlink(backup.txt)


Итог по файлу:

Скушай
этих
французских
булок


Что просто прекрасно. Но после этого я с разбегу впечатался в кирпичную вкладку, когда захотел стереть ДВЕ строки.
Я использовал два способа:
1) Пытался свести две строки в одну:

...
--------file1.write('' if line == 'еще\nэтих\n' else line)


что не помогло: не изменилось ничего.

2) Пытался использовать несколько if'ов одновременно:

...
--------file1.write('' if line == 'еще\n' or line == 'этих\n' else line)

(аналогично, если использовать более громоздкие if'ы для каждой строки отдельно)

что привело к тому, что стирается только последняя указанная строка (то есть если if-statement'ов дохуя, сотрется почему-то только последняя из указанных, хотя по логике все if'ы должны срабатывать одновременно, ибо они не elif'ы).

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

Что я упускаю, подскажите, пожалуйста.
197 1190675
>>190656

>Там в матрице и так 6 млн записей, она общитывается секунд 10 на моем пека и так, через бд вообще вечность ждать буду.


Парсить + отправлять в базу будет долго, да. Но зато на выходе селектить будет на много быстрее чем сейчас
image.png105 Кб, 1536x448
198 1190681
>>190635
Поссал тебе на ебало. Как там, на неподдерживаемом говне сидеть?
199 1190724
>>190681

> Как там, на неподдерживаемом говне сидеть?


Ыы обновка обновочка ням))
Самому не противно, дурачок? Даже самые основы основ учат, мол, работает - не трогай.
покормил
200 1190726
>>190681
Он же написал, что ему хуёво. Ничего не работает, ааа, помогите...
201 1190727
>>190724
Не противно, я-то обновляюсь с умом, когда не предстоит никакой важной работы. А виндобляди в интернете тут и там горят от внезапных и неотменяемых обновлений.
Вообще не знаю, почему ты загорелся от невинного совета попробовать кодить под линуксом, ведь он объективно более удобен для этого.
И ты забываешь, что спермёрка уже даже не ЛТР, новое железо под ней уже заводится с плясками.
202 1190733
>>190727
Справедливости ради: отладчик в VS - это сказка. GDB и LLDB - флюгагехаймен по сравнению с VS.
Сам сижу на лине и не понимаю, как коллеги юзают винду, но жутко завидую их отладчику, он божественнен. Видать только с таким можно продолжать пилить ось, на которой он работает.
203 1190735
>>190733
Мне нипанять, не юзаю IDE. Атом наше всё.
204 1190772
>>190635

> Если не осилил окна


Ну так помоги тому c проблемами тогда, осилятор.

>>190658

>('' if line == 'еще\nэтих\n' else line)


Вполне работает. https://repl.it/repls/AlienatedUnfoldedWorker Однако, это очень коряво такое в write() вставлять, в любом случае.
Лучше сделай проверочную функцию:

>if need_to_write(line):


> file1.write(line)


А внутри уже какие угодно условия делай.
Или, если строку нужно изменить, можно

>file1.write(process_line(line))


А там оно уже вернёт '', неизменённую line или какую другую любую строку.

>line == 'еще\n' or line == 'этих\n'


Вместо этого можно

>line in ['еще\n', 'этих\n']


Намного короче получается.

>for line in file2.readlines():


Совсем не обязательно readlines() делать (который сразу весь файл читаеть и в память загружает). Можно и просто

>for line in file2:


Тогда в каждой итерации будет читатсья по строке. Полезно для крупных файлов.

И последнее

>'еще\n'


А что, если это последняя строка? Там \n может уже не оказаться. Советую игнорировать переносы (hint: str.strip) при обработке.

>-file1.write('' if line == 'еще\nэтих\n' else line)


Потому что line у тебя всегда одна строка, в ней не может быть и ещё, и этих, потому что это две строки. Вроде логично же, не?
204 1190772
>>190635

> Если не осилил окна


Ну так помоги тому c проблемами тогда, осилятор.

>>190658

>('' if line == 'еще\nэтих\n' else line)


Вполне работает. https://repl.it/repls/AlienatedUnfoldedWorker Однако, это очень коряво такое в write() вставлять, в любом случае.
Лучше сделай проверочную функцию:

>if need_to_write(line):


> file1.write(line)


А внутри уже какие угодно условия делай.
Или, если строку нужно изменить, можно

>file1.write(process_line(line))


А там оно уже вернёт '', неизменённую line или какую другую любую строку.

>line == 'еще\n' or line == 'этих\n'


Вместо этого можно

>line in ['еще\n', 'этих\n']


Намного короче получается.

>for line in file2.readlines():


Совсем не обязательно readlines() делать (который сразу весь файл читаеть и в память загружает). Можно и просто

>for line in file2:


Тогда в каждой итерации будет читатсья по строке. Полезно для крупных файлов.

И последнее

>'еще\n'


А что, если это последняя строка? Там \n может уже не оказаться. Советую игнорировать переносы (hint: str.strip) при обработке.

>-file1.write('' if line == 'еще\nэтих\n' else line)


Потому что line у тебя всегда одна строка, в ней не может быть и ещё, и этих, потому что это две строки. Вроде логично же, не?
205 1190886
>>190330

мультитрединг
Снимок экрана в 2018-05-16 20-00-55.png206 Кб, 1366x768
206 1190966
Каков pythonic way для чтения и обработки только первых строк файла?
207 1190968
>>190772

> Ну так помоги тому c проблемами тогда, осилятор.


Тоже ебался с подобной проблемой, фиксил добавлением всевозможных путей к питону.
208 1190979
>>190966
Прочитать и обработать первые строки файла. Что за вопросы, блин? Не читай в память то, чего тебе не нужно, больше ничего тут не ответить.
209 1190980
>>190979
for lineno, line in enumerate(f):
....if lineno > 3: break

вот какой ответ я ожидал
вот что нужн применять вместо классического счетчика
210 1190987
>>189164
Кстати таки накатил линукс. Виртуленв работает без костылей, в вскоре модно даже выбрать в качестве интерпритатора, ахуенно.
211 1190992
>>190987

> можно, интерпретатора


фикс, сижу со смартфона
212 1190993
>>190992
Как же я блядь обосрался, господи. Не пинайте.
213 1191014
>>190604
Нашел ответ человек в телеграмме. Если у кого будет та же проблема: https://github.com/PyCQA/pylint/issues/1021
14985511175380.jpg8 Кб, 391x221
214 1191100
Сап программач, есть одна переменная. Она парсится из текстового файла. Переменная, должна отдаваться клиенту при каждом запросе.
Текстовый файл периодически меняется. Соответственно, переменная должна меняться тоже. Внимание, вопрос: как используя джанго, мне лучше засунуть переменную в память, чтобы при каждом запросе не парсился текстовый файл с диска?
215 1191117
>>191100
Возможно повесить листенер на обновление файла с переменной?
Гниды.webm10,4 Мб, webm,
631x420, 4:21
216 1191121
Немного двачну вопрос >>191100
Только меня интересует как написать скрипт который бы получал эвенты изменения файлов в директории.
Или это сложно/не кроссплатформенно? Я на винде сижу.
217 1191123
>>191117
Ты это имеешь в виду?
https://docs.djangoproject.com/en/2.0/topics/signals/
Я нуб просто
218 1191129
какого хуя я не могу сделать map none, а не делать костыль как на втором пике? Я ведь всеравно передаю мап только через конструткор, каково хуя оно матерится даже просто при импортировании данного класса?
219 1191166
>>191100
Засунуть в редис или мемкешд.
Другое дело, нахуя тебе это? Прочитать файл с диска – это не дороже, чем в базу один раз сходить.
220 1191170
Где можно почитать про ООП, чтобы было максимально понятно и просто, но при этом подробно?
221 1191171
>>191166

> Прочитать файл с диска – это не дороже, чем в базу один раз сходить.


Даже если база на локалхосте?
222 1191173
223 1191177
>>191129
Потому что ты блять ебанутый, ты вообще понимаешь, что ты делаешь и зачем?
1) Тебя не смущает, что твое слово map ПОДСВЕЧИВАЕТСЯ БЛЯТЬ? Охуенно тебе builtin функции ломать? Никогда так не делай, иначе Гвидо отрежет тебе голову и насрет в горло.
2) У тебя в словаре pos используются операторы доступа к map, вот эти скобочки []. Они подразумевают взятие элемента из контейнера - списка, тупли, вообще из любого объекта, у которого определен метод __getitem__. И внезапно, у None'а этого метода нет, потому что это не список и не тупля.
3) Что бы ты в конструктор не передавал, это запишется в self.map инстанца, а в определении класса вне метода __init__ у тебя будет отдельный map, который всегда равняется None. Есть атрибуты инстанца, которые уникальны для каждого объекта класса, а есть атрибуты класса, которые одинаковы для всех экземпляров класса.
2018-05-16205000.jpg32 Кб, 540x153
224 1191182
>>190772

>Вполне работает


Бля, я хз, как это раньше у меня не работало. То же самое повторил: реально пашет.
Я думаю, для меня это самый удачный вариант. За

>>line in ['еще\n', 'этих\n']


отдельное спасибо. Так действительно красивее.

Хотя я тут глянул, как я исходно делал, возникает проблема (см. пик). После выполнения стирается только последняя указанная строка. Вот о чем я говорил.

Алсо строка выше работает, только если требуется заменить строки под одну копирку (в данном случае если все строки надо удалить). То есть если мне захочется превратить слово "французских" в "немецких", мне по новой всю часть кода с создания бэкапа повторять? Потому что если попробовать еще раз через file1.write, то он мне по мне строчки будет в файл записывать.
Это бы решалось во втором варианте с кучей if'ов, но строка меняется только последняя, как я и говорил.
225 1191193
>>191182

>то он мне по мне строчки


то он мне по ДВЕ строчки
Запоздалый фикс
image.png5 Кб, 300x124
226 1191209
>>191177

>1) Тебя не смущает, что твое слово map ПОДСВЕЧИВАЕТСЯ БЛЯТЬ?


он подсвечивается только в ебанутом текстовом редакторе, в пичарме такого нет.

>2,3


Походу понял свою ошибку. Словарь pos инициализируется при создании обьекта и принимает значения для того мап, который None ну или [[1,2],[1,2],[1,2]]
с моим неработающим костылем
, да? Тогда для этого словаря надо сделать что то типа геттера?
227 1191215
Как решить? str воткнуть перед хелло?
228 1191220
>>191215

>Virna

image.png6 Кб, 338x91
229 1191224
>>191209

>в пичарме такого нет.


Специально запустил свой Пичарм, чтобы пописать тебе на лицо.

> Словарь pos инициализируется при создании обьекта


Словарь pos инициализируется, когда выполняется определение класса.

>Тогда для этого словаря надо сделать что то типа геттера?


Оверкилл, мне кажется. можно сделать значениями словаря lambda self: self.map[self.X][self.Y+1], и потом передавать им self инстанцов класса.
230 1191237
>>191220
пидор \(._.(/
231 1191243
>>191177

>1) Тебя не смущает, что твое слово map ПОДСВЕЧИВАЕТСЯ БЛЯТЬ? Охуенно тебе builtin функции ломать? Никогда так не делай, иначе Гвидо отрежет тебе голову и насрет в горло.


Ага, только использование имени builtin-функции качестве имени аттрибута (ну и в параметрах конструктора) я регулярно встречал в доках и исходниках крупных библиотек.
И PEP8 это не запрещает.

мимикрокодил
232 1191253
>>191243

>я регулярно встречал в доках и исходниках крупных библиотек.


Я тоже. Но это все равно хуйня полная, зачем так вообще делать?
233 1191254
>>191220

просто я однажды скинула так же, а на меня весь тред кинулся, так что приходиться скрываться.

Так объяснишь в чем я обосралась?
234 1191269
>>191254
ПАЦАНЫ, ТУТ ЖИВАЯ ТЯН-ПИТЯН
235 1191278
>>191269
Еще и сокеты трогает руками, а не хелоуворолды
Тупой (w. Пахом, Галида).webm11,9 Мб, webm,
560x420, 4:52
236 1191289
>>191253
А почему бы и не сделать? Уродство вроде id_, max_, len_ - лучше?

В случае имени аттрибута - это вообще никак не влияет на builtin'ы.
В случае параметра __init__ - в его скоупе использование какого-нибудь id или map маловероятно, а если и вдруг понадобиться - ты никак не сможешь не заметить обосрамс в таком крошечном скоупе и так и быть переименуешь в id_.

Но аутистов очень смущает то что map синтаксически выделяется другим цветом по себе знаю.
И кстати это проблема VSCode хоть я и сам на нём сижу по многим причинам - подсветка синтаксиса в нём строится только на тупых регулярках и никак не сможет например различить где действительно идентификатор builtin'а и где локальная переменная.
Но пример проблемы Питона не особо страшный. А вот в сишке невозможность различать функции и макросы - это пиздец.
Всякие йоба-IDE в такую посветку обычно могут, "легковесные" - нет.
237 1191343
У Гвидо типично лицо голландского пидорка.
238 1191345
Кстати, можно ли в питоне перегрузить оператор сравнения для строк, например?
239 1191348
>>191345
Делай свой класс, наследующийся от str и перегружай __lt__, __gt__, остальные.
240 1191351
>>191348
Гавно, т.е. мне всегда придётся оборачивать строки в мой класс. Не катит.
241 1191354
>>191343
Каждый день вижу голландских пидорков, сразу по харе определяю где пидорок, а где ещё сомневается.
242 1191359
>>191354
Шлюха
243 1191417
>>191182

>(см. пик)


Ну так ты на свои if'ы ещё раз взгляни. Ты не в курсе elif'ов?
Твой код работает так:
1. Если "ещё" - пустую строку
2. Если "этих" - пустую строку, иначе line.

Так вот, "ещё" != "этих", а значит при прочтении этой строки твой код попадает в блок else'а. Тебе нужно было if, elif, else делать.

>мне по новой всю часть кода с создания бэкапа повторять?


Нет. Я ж для чего и сказал, что нужно сделать отдельную функцию для обработки строки, которую будет возвращать то, что нужно записать в файл. Таким образом у тебя будут отделены блоки чтения-записи и обработки.

>>191345
В питоне нет перегрузки. Но ты хотел сказать переопределить, конечно. манки-патчинг тут зашёл бы: ClassName.__eq__ = your_eq_function, но у builtin'ов их изменять нельзя, к сожалению (или к счастью). Так что, да, только оборачивать в свой класс. Но ты лучше задачу опиши, может ты хуйню какую творишь и лучше бы тебе просто функцию нормальную написать, а не гнаться за типа коротким str1 == str2 вместо compare(str1, str2).
244 1191418
>>191417

>у builtin'ов их изменять нельзя, к сожалению (или к счастью)


JS'овцы, кстати, на этом уже попались разок и частично подгорают, шумиху какую-то подняли, потому что какая недобиблиотека переопределила что-то в стандартных прототипах, а теперь это имя хотят для другого использовать. Чем закончилось всё не знаю, буду раз, если по хардкору пояснят.
245 1191429
>>191417

>по поводу переопределения.


Хотел переопределить операцию сравнения для строк, чтобы попробовать небать тесты.
Мой лучший результат 4-попугая, в то время как самый лучший 1.
Вот я и подумал, может кто-то сломал тесты.

Кстати, задача простая:
Есть список objects, надо подсчитать кол-во уникальных объектов в нем.
Например:
len(set(map(id, objects)))

Попугаев дают за эффективность и краткость кода.
Как можно эффективно и красиво пробежаться по списку?
246 1191432
>>191429
А зачем тебе тут map? объекты хешируемы? Если да, то сразу set на список и вызывай. Алсо, где тут вообще у тебя строки-то? id так-то число возвращает (адрес в памяти, если CPython).
247 1191434
>>191432
Проблема в том, что у 1 и True один хеш из-за преобразования.
А надо либо is либо id сравнивать.
248 1191436
>>191434
А, ну тут проблема, да. А дай ссылку, что ли, поиграться там. Так-то кроме id эти два ничем друг от друга и не отличить, вроде, поэтому даже явное прохождение в лупе со счётчиком и словарём для "встречавшихся" элементов ничего не изменит. Разве что за один проход, а не два.
15191466857980.jpg204 Кб, 1920x1080
250 1191483
Как сделать чтобы мой скрипт устанавливался через pip с гитхаба?
251 1191490
>>191483
Денюжку заплати.
252 1191491
>>191490
Схуя ли? Пип платная хуйня? Да ну нахууууууй.
253 1191493
Учу Питон уже полгода. Постоянно хочу спать и есть, падаю на диван, не могу сконцентрироваться. Сейчас заметил, что пока полчаса читал книгу, постоянно тер правую руку левой. Это нормально?
254 1191626
призывается бородатый бдшник

ситуация: есть одна sqlite3 бд, в ней 130+ таблиц. В эти таблицы постоянно пишется дата, которая парсится с некого api. В тоже время, из этой базы берется эта же дата на обработку. То есть постоянный insert'ы и select'y.

Как бы ускорить это дело? все, конечно, на python
255 1191650
>>191626
PostgreSQL + aiopg/asyncpg = profit
Если insert`ов больше подумай о хранении в кэше каком, обработка и лишь затем запись обработанного.
256 1191678
>>191626
у скюлайта есть куча настроек, гугли, отключи например журналирование или засунь все в память
257 1191685
>>191626
Ещё один идиот выбрал SQLite не понимая для чего этот самый скулайт создавался. ЗАТО РАЗВОРАЧИВАТЬ НЕ НАДО. Ебись теперь, земля тебе пухом.
258 1191706
>>191685
Для чего он создавался?
259 1191719
>>191436
Держи:
stepik .org/lesson/24458/step/9
260 1191728
>>191436
Всё, разобрался exec() оптимизация.
1353138915840.jpg22 Кб, 600x450
261 1191732
>>191417
Спасибо большое тебе.
Я не совсем понял про твои функции, но обошлось и без этого. If'ов - elif'ов достаточно. Все теперь работает как часы.
Ты очень милый анончик.
262 1191741
>>191732

>Я не совсем понял про твои функции


https://repl.it/repls/WoefulJumboLibrary
263 1191743
>>191706
Хех, ну я вижу уже в описаниях на сайте они там совсем упоролись и рекомендуют пихать скулайт везде кроме бигдаты. Вообще он создавался для встраивания в приложения, в классические десктопные такие, где точно никаких больших нагрузок нет, никакого конкурентного доступа.
Ну вон, как видишь тот анон хочет уже ускорить. Осознание поздно, но приходит.
264 1191757
>>191741
Хм, собственно, ничем это и не отличается от моей реализации кроме того, что оно без определения функции и встроено прямо по ходу кода.

>if line:


> line = line + "\n"


Интересное решение. Теперь понятно, почему функция FileInput() автоматически проставляет красные строки после своего завершения. Что-то подобное встроено в нее изначально. Возможно, тогда стоит сразу ее и использовать, чтобы не копировать оригинальный файл отдельной строкой (там встроенный backup есть).
265 1191767
>>191719

>stepik .org/lesson/24458/step/9


Your code complexity score is 6.08 (best for this step is 1.0).
Почти закончил курс, большинство задач с best for this step is 1.0, когда я решаю за 3-8 секунд.
Или я макака совсем, или в чем там дело?
266 1191781
267 1191784
>>191100
Watchdog
268 1191825
>>191743
Ясненько, я раньше ее юзал при разработке, до релиза, а затем перекатывался на постгрес.
Сейчас даже таким не занимаюсь.
269 1191870
>>188284
Пустая строка интерпретируется как ложь, то бишь пока ты не выедешь одну букву и не нажмёшь энтер, он будет спрашивать перевод с перехлестом(для хуевиндовщиков, вроде меня) каретки не записывается в строку, можно считывать значения с побайтно, и джойнить их в строку, тогда даже перевод уже будет засчитан
270 1191899
>>191741
я бы так реализовал
https://repl.it/repls/HighNeatAngles
271 1191902
>>191743
так на что тогда мигрировать?
поглядел кучи рецептов по ускорению, вплоть до эксплоитов на плюсах, кажется.
Индиксация мне не подходит, потому что постоянный Insert. Думаю, остановится на многопоточности и реализации шаблона consumer. Еще говорят, есть кучи конфигов, которые не гонятся за производительностью.
Может быть вместе и сработает. Ну а еще докучи буду писать в память и только читать. Раз в какое-то время дампить в базу на диске.
Если был опыт в этом - коммить, анон
272 1191904
>>191825
как приноровился? бесперебойная анлим РАМ
273 1191910
>>191904
Что именно? Перекатываться на постгрес или юзать склайт?
274 1191911
>>191490
Тебе на лечение?
275 1191913
>>191910

>склайт

276 1191916
>>191182

> За


> >>line in ['еще\n', 'этих\n']


> отдельное спасибо. Так действительно красивее.


Красиво обыденно, но не корректно с точки зрения выделения памяти тут нужна тупла, а не лист
277 1191922
>>191483
Никак. Насколько помню есть какой-то пакет который умеет исходники тянуть с гитхаба и подрубать это говнище в рантайме. Для пипа есть pypi
278 1191925
>>191483

Не уж то анон высрал что-то полезное, чем не стыдно поделиться с комьюнити?
279 1191933
>>191913
Ну так а что, понятно ж о чем речь? Лень раскладку переключать
280 1191934
>>191925
Какой нибудь очередной парсер, который будет с виабушных сайтов пикчи аниме-девочек тянуть.
Хули, на что еще способен анон?
281 1191935
>>191934
На обертки над API
282 1191939
>>191933
как принаровился, имею ввиду, юзать склайт? или переход на постгресс и было принаравлением? А щас чем пользуешься? какие профиты?
283 1191944
>>191939
А хули им юзать учиться?
Тот же синтаксис +/-, подрубаешься и через курсор погнал ебашить команды.
Для постгреса потом другую либу и немного синтаксис подправить, если надо.
Профиты?
Ну если приложение нагружает БД то склайт сосет, а постгрес работает(хотя иногда и он 16 гигов оперативы сжирал и ложил комп). В склайте нет ilike, если делать поиск, то это критично.
Приноровлений никаких не было, все как по маслу.
Сейчас постгрес юзаю, все хорошо.
284 1191947
>>191944
звучт отлично
285 1191958
>>191944
зацените на грани бреда: а что если, я сделаю каждую работу с таблицей как отдельную базу данных? И буду в 135 потоках ебашть в них асинхронно? Ну и запрашивать в этом же потоке.
Может так быть?
286 1191970
>>191902
То что ты описал похоже на обычную очередь. Там тебе SQL в любом виде не особенно нужен. Не знаю что там за 130 таблиц, обычно 100+ таблиц это невъебенно сложное приложение которое разработывали лет пять. Телепаты в отпуске.
287 1191974
>>191970
агрегатор всякой залупы. Это на бэкенде сервачек парсит все что может. Там много одинаковых объектов: поля и домены ве сейм щит. И к ним даже идут одинаковые запросы из бэкенда. Вот этих таблиц 135. Окола 90 - подобны. Они заполняются в цикле и читаются тоже.
288 1191977
>>191970
а как тогда организовать хранилище и анализ данных? Как быстрее - так мне и лучше
289 1191985
>>191935
а что если это обертка над оберткой с тонной зависимостей и нулевым выхлопом?

Как-то рас пришлось беседовать с аноном - супер прогером сеньером помидором и 250к/мс со слов мудозвони, он ява-дрочер и не знал, что такое ООП на принципиальном уровне
104690 - coffee luna computer artistkatakiri.png910 Кб, 936x1192
290 1191986
Реквестирую практические задачи по типу: бот в дискорд, который будет добавлять сообщения и автора/дату в БД, прогноз погоды в том же боте, не используя API, гуй-окошечки и подобное.
Может что на графы, но их пока не освоил нормально.
291 1191988
На скрэпинге вообще возможно заработать? Заказчиками являются всякие чедушные магазинчики, которым нужно базу забить дерьмом с агрегаторов? Кто-нибудь работал в этой сфере?
292 1191989
>>191985

>не знал, что такое ООП на принципиальном уровне


он тебя наебал
схлопотал ооп головного мозга в андроиде
293 1191992
>>191988
Скрепинг это донное днище разработки. Если хочешь этим заниматься иди либо в Scrapinghub сразу работать, либо найди себе команду аналитиков и осваивай бигдату сразу.
294 1192009
Привет, аноны.
Подскажите, как мне сделоть удалённое редактирование и отладку (особенно отладку) питоньей программы на удалённом сервере? Локальная машина на дебиане (можно пересесть на вин 10, но не хотелось бы).
Джва часа проебался с vscode и ptvsd и в итоге упёрся в баг, который они ещё не пофиксили - не останавливается на брейкпоинтах.
295 1192011
>>191986
Присоединяюсь к господину
296 1192012
>>191985
Ну так можно все обёртки над API вырезать нахуй.
Если сервис популярный и API состоит не из парочки методов, то почему бы и не создать заранее готовое решение для работы и упрощения жизни?
297 1192013
>>192009
Логи тебе и тонны боли в помощь
298 1192014
>>192013
Логи не помогут, разрабы vscode/ptvsd признали это багом месяц назад.
Как редактируете-отлаживаете удалённые проги в своих проектах?
299 1192015
>>191977
1. Оптимизируй свои запросы и ключи в таблицах
2. Перекатись на PostgreSQL, это не должно ничего поломать в твоей БД и программе
3. Если хочешь больше инфы - неси конкретику о таблицах и данных
300 1192016
>>192014
Причём тут vscode твой?
Запускай программу из консоли на том серваке и выводи промежуточные результаты работы.
Я так и делаю.
А лучше про брейк поинты питоновские почитай, авось поможет.
301 1192020
>>192016

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


Ты хочешь сказать, что это обычное дело в питономире? я крестоблядь прост
Судя по тому, что такой функционал есть, похоже, только в PyCharm Pro, дохуя кто живёт именно так.
302 1192027
>>192020

> Ты хочешь сказать, что это обычное дело в питономире?


Не совсем, я просто таким не страдаю и вообще я быдло.
Я же сказал, почитай вот про это:
https://docs.python.org/3.6/library/pdb.html
Вдруг тебе поможет.

> такой функционал есть, похоже, только в PyCharm Pro


P.s. О каком функционале речь?
303 1192030
Господа, я ньюфаг в пайтоне, нужна помощь. Суть - не могу узнавать что то новое просто так, обязательно нужна практическая цель. Посему реквестирую список тасков, от самых азов до полноценных приложений. могу конечно универские лабы с плюсов переписывать, но это тупо как по мне

И еще - в какой иде пишете? Мне удобно когда можно писать код, компилировать его одним кликом и дебажить в той строке, где компилятор ругается. Пока использую компиляцию через консольку, но как то неудобно.
304 1192031
>>192030
VSCode если готов почитать доки чтобы писать таск-конфиг для "запуска одним кликом".
Пайчарм я сам не люблю, но там наверное с "одним кликом" проще всё, но менее прозрачно.
305 1192032
>>192031

> менее прозрачно


После МВС меня это совсем не пугает, спасибо.
306 1192045
>>191757

>кроме того, что оно встроено прямо по ходу кода


Ну так я вот именно это и убирал же.

Вообще, что именно ты имел в виду под

>То есть если мне захочется превратить слово "французских" в "немецких", мне по новой всю часть кода с создания бэкапа повторять?


? Если ты хочешь второй раз пройтись по файлу, то в принципе да, всё заново, но смысл в том, чтобы за один раз всё сделать.

Ну и про бэкап. Зачем? Просто пиши в другой файл. А то ты копируешь файл 1 в файл 2 и потом, читая файл 2, пишешь в файл 1. Чего бы сразу не читать файл 1 и писать в файл 2-то? Если имя файла так нужно, то переименуй файл1 в файл2, *копирование, не имеет никаго смысла, потому что ты всё равно потом удаляешь и перезаписываешь всё содержимое.
14626110100460.jpg522 Кб, 1280x1638
307 1192055
Пиздец, на арифметической (наверное) задаче туплю.
Как найти кол-во байт нужное для хранение числа (положительного)?
Желательно не используя битовые операторы.

Я высрал только
((-x.bit_length() % 8) + x.bit_length()) // 8
это норм или хуйня?
308 1192057
Какой стек технологий нужен для удалённой работы?
Анализ вакансий для удалёнки немного разочаровал, работы не так много и в основном это бекэнд.

Всем нужны JS макаки
309 1192070
>>192055
Байт не обязательно равен 8 битам. Хотя питоний интерпретатор вряд ли портировали на такие пизданутые платформы.
310 1192086
>>192057
Django или Flask/Scrapy/Selenium/Requests/bs4/БД какую, в том числе не реляционную/Англицкий
311 1192100
312 1192168
>>192015

> неси конкретику


есть одна бд (свой агрегатор). В ней 135 таблиц. Все таблицы - подобны (одинаковые домены). Эти таблицы заполняются в цикле по одной. В том же проходе эта таблица читается. 1 insert | 2 select'а.

Полный проход цикла занимает от 340 сек до 700сек. Этот бэкенд на фласке питоне создает рест апи.

Как проще и доступнее организовать данные, чтобы их можно было легко записывать и тут же запрашивать анализировать?
1315493851316.gif423 Кб, 175x175
313 1192169
Чёт я взгруснул когда увидел какой охуенный, ОППшный у пхпшников враппер для ffmpeg:
https://github.com/PHP-FFMpeg/PHP-FFMpeg

А у питона хуйня которая только передаёт аргументы в Popen и проверяет что returncode не нулевой:
https://github.com/Ch00k/ffmpy/blob/master/ffmpy.py
315 1192171
>>192168

>Полный проход цикла*


полный проход всех 135 циклов
316 1192172
>>192171

>Полный проход цикла


полный проход всех 135 циклов
все верно.
317 1192177
>>192169
Хуёво, наверное, быть особенным?
https://github.com/readbeyond/aeneas
[ OrekiFag ] 56796542 = シュレーディンガー.png649 Кб, 1020x1301
318 1192178
>>192170
О, круто PyCon уже в этом году был.
По-моему даже в JS-мирке аннотация типов (Flow/TS) намного популярнее чем у питонистов.
Я пока ни одну либу не встретил с аннотацией в сорсах.
319 1192179
>>192045
Эм, мне нужно изменить исходный документ в том же самом месте, где он первоначально лежит. Если следовать твоей инструкции, мне придется копировать имя оригинального файла, производить основные операции, удалять оригинальный файл, а затем присваивать его имя новому файлу. С бэкапом проще, как по мне.
1322386706476.gif449 Кб, 286x119
320 1192180
>>192177

>aeneas is a Python/C library and a set of tools to automagically synchronize audio and text (aka forced alignment).


И при чём тут ffmpeg? У него вообще-то функционал намного шире чем >automagically synchronize audio and text
321 1192185
>>192178
Ну это относительно недавно стало вот так вот выкатываться, раньше про такое никто особо не говорил, может взлетит, библиотека для проверки уже есть.
Думаю в следующем прожекте попробовать такое, выглядит довольно полезно.
322 1192188
>>192180

> ffmpy is a simplystic FFmpeg command line wrapper.


Так а что ты от той библиотеки хотел?
Мало функционала? Добавь свой, это же гитхаб.
1375917051043.gif950 Кб, 384x288
323 1192192
>>192188

>Так а что ты от той библиотеки хотел?


ООП-ориентированный интерфейс к ffmpeg, вместо нечитаемой срани.

>ffmpeg -r 1 -loop 1 -i shit.jpg -i piss.mp3 -map 0:v -map 1:a -c:a libvorbis -q:a 9 -c:v vp9 -b:v 0 -crf 16 -g 64 -vf scale=-1:420 -shortest fuck.webm -y


stdout которой ещё потом придётся парсить.

>Мало функционала? Добавь свой, это же гитхаб.


Для того чтобы написать такую либу мне сначала придётся хорошо изучить ffmpeg (и вообще кодирование аудио/видео).
А тогда уже мне эта либа будет не нужна.
324 1192193
>>192192
Ну тогда сиди, жди дальше.
Удачи
13087799193838.gif626 Кб, 320x240
325 1192197
>>192193
Да мне и не сильно нужно было, пока хватает subprocess.run без всяких либ.
Просто взгруснулось от того что у пхпшников есть, а у пиздонистов - нет.
image.png7 Кб, 513x111
326 1192208
>>192055

всего на всего:
x.__sizeof__()

любой класс унаследованный от object имеет этот метод
327 1192211
Анон, не могу создать Postgres db в Visual Studio 2017 через Python. Поглядел все туторы - и ничего не подходит, я чего-то не догоняю, но не знаю чего
328 1192215
>>188818
Что за сайтец? Или прога? Крч где подобные задачки выполнять с проверкой?
329 1192216
>>192215
codewars
330 1192218
>>188818

int('0000') это 0, то бишь False, а False and True это False
1405783847199.gif486 Кб, 499x330
331 1192220
>>192211
Для начала снеси VS и научись, блять, базовой ебле в терминал.
Затем $ createdb db_name. И вообще https://www.tutorialspoint.com/postgresql/index.htm

Не создают базы "через питон". Создают консольными утилитами и потом подключаются к ним в питоне.
Но на твоём уровне вообще не рекомендую трогать psql, будет слишком больно. Для начала научись всё делать без ссаной IDE, потом попердоль sqlite.
332 1192221
>>192220

>без ссаной IDE, потом попердоль sqlite


переезжаю с склайт. Без иде в рот ебал. Все создал через AdPostgress. Да, все происходит на винде. В рот ебал терминал, пользуюсь python. Все норм.
пойми, я не ради технологий делаю, а ради результата, который мне нужен чтобы облегчить и автоматизировать другую работу.
333 1192222
>>192216
Добра тебе, анон
image.png46 Кб, 961x580
334 1192225
>>192216
забавно
335 1192230
>>192221
Ну удачи, надейся что твои остануться достаточно лёгкими под них можно было найти кнопочку в IDE.
Просто если ты тратишь часы на то чтобы решить проблему, но реальных знаний не получаешь, только находишь нужную кнопочку - в дальнейшем так и продолжишь тратить время на поиск кнопочек, вместо того чтобы начать понимать что ты вообще делаешь и научиться решать сразу пласт задач.
336 1192231
>>192225
hola vpn
337 1192232
>>192231
пикрил на нордике
338 1192235
>>192230
понимаю о чем ты, прост голова другим занята, самими решениями, а не базой, на чем все работает
339 1192236
>>192230
ты какой-то ярый противник ide и терминалодрочер? что плохого в ideшке? ну vs от мелкомягких не в счет, юзать эту санину - себя не уважать, то же самое касается шарпа и всего .net
340 1192237
>>192192
там особо и паристь нечего, в stdout - строка байтов, просто раздеребань её на список и найди в цикле все нужное, поскольку она айпа, то можно это делать рилтайм в отдельно процессе, сложно ничего нет, но оборетка реально дерьмовая и особого смысла в ней нет, подтверждаю, сам юзал стандартный Popen, к слову, если тебе нужно просканить результат после скачки и неважны ошибки, то резоннее юзать check_output
13089967492552.gif889 Кб, 250x185
341 1192238
>>192236
Проблема не в самих IDE, проблема в тех кто юзает IDE на стадии обучения, а потом не понимает даже как скрипт запустить без этой IDE.
На "легковесные" IDE вроде VSСode это не распространяется.
342 1192240
>>192238
мне кажется, что как раз в процессе обучения необходимы IDE (ведь речь идет не о бд, а о питоне?), ибо нет геморроя с табуляцией и можно легко посмотреть реализацию метода и документацию (если имеется) и много ещё других плюшек, которые просто облегчают жизнь, тем более, ты ведь знаешь что такое cmd винды и можешь адекватно оценить как вней работать (в сравнении с терминалом юникса), даже по человечески нельзя скопировать и вставить, не говоря уже об отсутствии возможности создавать виртуальные терминальные окна и всего прочего
1316290244283.gif957 Кб, 640x360
343 1192246
>>192240

>мне кажется, что как раз в процессе обучения необходимы IDE (ведь речь идет не о бд, а о питоне?), ибо нет геморроя с табуляцией и можно легко посмотреть реализацию метода и документацию (если имеется)


Я не предлагал писать код в vim. Всё это есть и в VSCode.
А вот запускать код нужно сразу учиться из терминала, а потом автоматизировать запуск/сборку скриптами или средствами

>тем более, ты ведь знаешь что такое cmd


Юзаю под виндой git-bash + Cmder. Настраивать их было немного больно, зато cmd не трогал никогда.
Для обучения лучше сразу ставить линукс, хотя бы на виртуалочку.
344 1192247
Научился писать калькуляторы. Что дальше? Как начать писать приложения? Что почитать, где есть обучение вот этому вот всему(желательно на ангельском).
345 1192261
>>192247
программируем на python Марк Лулз
потоm фрилансеть
346 1192276
>>192261
Я его почти всего прочитал
347 1192279
>>192276
Анализируй проэкты на гитхабе, улучшай их или добавляй фичи
348 1192285
>>192276
ну походу ты тогда какой-то дурачок, раз все прочитал и не знаешь куда приложить умения
349 1192311
>>192247
А что ты хочешь уметь? Для чего питон учил?
350 1192320
>>188085 (OP)
Сам змеяч, хочу вкатиться в джангу, но есть проблема, именно - куда вкатываться?
Есть джанга 1.1 но она устаревает, а есть джанга 2.0, но по ней маловато гайдов. И то, что по идее работает в 1.1 в 2.0 уже не работает. Мне надо понять полный принцип работы, но мне неохота курить устаревший материал.
15250318720490.mp49,6 Мб, mp4,
640x360, 2:03
351 1192347
Здраститя. Я мудак, и склеиваю sql-запрос простым сложением строк. Так сложилось исторически. В запрос идут параметры из QueryDict. Никак не могу понять, как мне добавить во входящие строки экранирование, допустим, одинарных ковычек чтобы избежать sql-инъекций
image.png116 Кб, 953x701
352 1192352
Аноны, на что Celery может ругаться? Когада пытаюсь запустить таски с ключом -B
image.png218 Кб, 1332x806
353 1192353
>>192352
Раньше всё блять работало, прошло два месяца и пиздец, уже где-то что-то проебал.
354 1192356
>>192347
в чем суть вопроса?
ты не знаешь как экранировать спецсимволы?
ты не знаешь что строки могут обрамляться 3-мя типами символов: ', ", """ ?
355 1192359
>>192347
слепые скульные инъекции до сих пор ещё эксплуатируют?
356 1192363
>>192356

>в чем суть вопроса?


Допустим приходит запрос ebola.com/show_me_dvacher?name=karasik
Склеиваем запрс:
sql_request = 'select dvacher.face from dvacher where dvacher.name like \'% + QueryDict['name] + '%\'
Так вот, если придет name=kar`asik, запрос не выполнится. Как сделать так, чтобы в запрос шел не kar`asik, а kar\`asik?
357 1192364
>>192359
Да такто пох эти инъекции, у моей джанги права только на select, просто хочется чтоб запрос все равно выполнился
Че Гевара.webm7,8 Мб, webm,
560x420, 3:26
358 1192372
>>192170
Блять, меня смутило на ~20:04 то что для JSON'а неизвестной "формы" он использует Any.
JSON же вполне определённую, хоть и рекурсивную структуру имеет.

Погуглил, да, в рекурсивные типы пока не могут:
https://github.com/python/mypy/issues/731
359 1192423
>>192170
Решил посмотреть, хотя только вкатываюсь. Если я когда пойду на работу начну везде тайп чекинг кидать, мне скажут, что я молодец или ебанат?
360 1192427
Хелп нуфагу, плес. Как в этом куске кода может меняться массив vals? Я уже голову поломал.
361 1192429
>>192170
Что случилось в мире, что теперь в питоне затребовались типы?
Небось ещё скоро объявлять переменные захотят.
362 1192438
>>192427
покажи весь код
363 1192439
>>192427
ты явно выкатился в из СИподобия, в начале тоже такое безумие писал)
364 1192443
>>192423
Все зависит от руководства/коллегк/код стайла принятого. Если адекваты, то не думаю что откажутся от этой идеи.
>>192429
У такого подхода к разработке есть свои плюсы, и он тебя ни в чем не ограничивает, это тебе не жесткая типизация.
365 1192444
>>192438
Забыл упомянуть, что это не просто массив, а array из numpy c dtype float, я как понял это просто массив с типом, или я аутист? Сейчас остальное не могу показать. У меня просто в голове не укладывается, где массив может измениться.
>>192439
В точку, из С++ в джаву, а на питоне скриптики и прототипы пишу. Очень простой красивый и быстрый в написании язык, завидую питонокодерам, потому что они не мучаются с синтаксисом, а пишут именно то, что должно работать. Есть рекомендации?
366 1192445
>>192429
до сих пор не могу избавится от этой привычки
367 1192446
>>192444
ты хотя бы покажи какие примерно аргументы у функции, какая структура, велика вероятность того, что ты пытаешься изменить тип, который не состоит из ссылок (неизменяемый)
368 1192449
Аноны, есть вопрос, не совсем по питону, но т.к. питонач - дом родной, то пишу сюда.
Есть один джун, который работает под моим началом(я сам от джуна не далеко ушел, но этот еще зеленее), так вот, начали мы писать небольшой прожект вместе, пока я был рядом - все хорошо было, минимум костылей, максимум работоспособности, затем меня перекинули на другой проект, а джун остался мелкие примочки дописывать. Я периодически в комиты заглядывал и правил. Вот прошел месяц его самостоятельной работы над примочками и насяльника сказал выкатывать все. Я принялся за дело и охуел от пиздеца который он наворотил. Приложение крашится от минимально не так введенных данных, пользователь не оповещается о действиях совершенных, часть моего функционала не работает, костыль на костыле и на заглушке. Мне говорил, что все ок и готово. Я целую ебучую неделю правил это и так ничего не выкатил, ибо не упел.
Что я сделал не так? Что надо делать? Как избежать такого пиздеца? Как научить его быть человеком?
Он у нас 7 месяцев работает, вырос конечно, но то что он написал, стало откровением для меня.
369 1192452
>>192427
ты судя по всему где-то в начале инициализируешь vals как-то так vals = exchanger

в итоге это приводит к тому что обращаясь к vals ты ссылаешься на exchanger, в питоне в отличии от СИ
a = [1,2,3]
b = a
a[0] = 0
print(b)

>0,2,3



если речь идет об изменяемых объектах, вроде листа или массива, нужно делать явное копирование,например так
b = a[::]

или гугли глубокое копирование
370 1192455
>>192449
дс?
может дропнишь его, возьмешь меня?)

а если серьезно, то обилие костылей это проблема куратора, это мне явно дал понять мой последний, когда вышвырнул меня с предыдущей работы пинком под зад))
image.png1 Кб, 123x22
371 1192456
>>192452
Спасибо, анон! Никогда бы сам не догадался, что язык такую мину подложит. Видимо, придётся всё-таки какую-нибудь книжечку по питону осилить. Извиняюсь за платину
372 1192457
>>192456
забавно, что стековерфлоу на 70% усеян такими вопросами
изображение.png207x85
373 1192458
>>192444

> array из numpy c dtype floa


Сукаблять. Смотри, в обычном Писстоне список и тупля содержат не объекты, а ссылки на объекты. Поэтому, если объект mutable, то с его изменением изменится и список. Пример - пикрил. Так что в обычном Питоне твоя ситуация, когда изменяется float который immutable без явного values = хуй невозможна.
Наверное фишка в том, что dtype float numpy мьютабельный и ты на один такой объект указываешь и в values и в exchanger, и когда объект меняется в exchanger+=..., то это изменение видно и в values. Это только предположение, сам numpy никогда не трогал.
374 1192459
>>192443

>У такого подхода к разработке есть свои плюсы


Я ничуть не писатель на Питоне, просто интересно, как до такой жизни докатились.
Раньше ведь не задавались такими вопросами.
image.png7 Кб, 410x119
375 1192460
>>192456
это все ещё я

>1192439


>1192452


нечем занять себя вечером в пятницу слишком интересная и насыщенная жизнь, так что предлагаю тебе переписать этот кусок код под питоновский стиль
ссылаться индексами тут не принято, но это так к слову
376 1192462
>>192455
Местный ДС, да и руководству норм, не уволят, только скажут "ну научи иво, вы жи команда".
Получается, что я виноват в его говнокоде? Как это пофиксить?
377 1192464
>>192459
Р-развитие, язык не может стоять на месте или развиваться лишь в одном направлении. Посчитали, что это будет полезно, вот и добавили.
Хотя может это и деградация языка, время покажет, как это приживется у пистонистов.
378 1192465
>>192462
посоветовать какую-то литературу, например из шапки поста, где первые 100 страниц одни паттерны, показать другие куски кода, написанные мидлами или сеньорами

з.ы.
открытых вакансий нет, что вообще значит местный ДС, он же только один, если рассматривать в масштабах РФ?
379 1192466
>>192460
Век живи, век учись. Когда я проходил курс по питону, ничего подобного там не было. Всё-таки не зря тут спросил, спасибо, анон, что ты есть. Не грусти так, ты классный
380 1192467
>>192429

>Что случилось в мире, что теперь в питоне затребовались типы?



Гвидо поумнел, наконец-то?
381 1192469
>>192467
А если в Питоне появится отступонезависимый синтаксис?
Что же тогда, апокалипсис?
382 1192472
>>192465

> посоветовать какую-то литературу


Поробую, но сомневаюсь что вне работы он читать будет, я ему уже кидал книги по пистону и вот не знаю даже, помогло ли.

> показать другие куски кода, написанные мидлами или сеньорами


Только если носом потыкать

> что вообще значит местный ДС


Беларашко-ДС Минск
383 1192493
>>192472

> Поробую, но сомневаюсь что вне работы он читать будет, я ему уже кидал книги по пистону и вот не знаю даже, помогло ли


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

>Только если носом потыкать


Странная ситуация (но под предлогом первого можно и потыкать)

> Беларашко-ДС Минск


понятно, жаль, как там у вас вообще, на какой ставке у вас там джуны, в раисии говорят, что картошкой платите)
384 1192496
>>192493

> возможно стоит более настойчиво это посоветовать


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

> а то джуном можно и просидеть очень долго


а ему и норм, видимо, инициативы нет.

> на какой ставке у вас там джуны


От конторы зависит, года два назад знакомый устроился в iTransition на C# разраба и получал 350$, сейчас всё там же, но про зарплату не говорит. У нас джун получает 400$.

> картошкой платите)


Пиздят )
385 1192500
>>192496

>получает 400$


х, как макдаке вобщем. Ебать раки ценники просадили, скоро нрн будут минет включать в пакет услуг
386 1192501
>>192500
Да, но сделай скидку на цены, которые у нас пониже российских.
На сколько я понял из общения с хрюшей в одной компании(гораздо крупнее нашей), диапазон з/п для джуна у нас 300-450$
387 1192502
посоветуйте плес тупую, юзерфрендли либу для графики в петоне. Достаточно выводить статичную картинку, состоящую из квадратиков 1-2 раза в секунду. Мне пиздец как лень сейчас учить какието либы, хочется написать три с половиной строчки кода и чтобы все работало.
388 1192543
>>192502
Tkinter, проще ничего нет, для рисования используй Canvas.
389 1192598
>>192439
Причем тут вообще Си? Там вообще просто так нельзя копировать массивы типа a = b. Нужно использовать функцию из библиотеки, либо написать свою. А если ты будешь использовать указатели (или ссылки в С++), то получится такая же хуйня как в питоне - когда поменяешь значение переменной в одном массиве, то оно и в другом массиве поменяется.

>>192444

>В точку, из С++


Сомневаюсь, что ты на крестах хоть что-то серьезное кроме калькулятора писал, раз делаешь такие тупые ошибки.
390 1192646
>>192598

>Причем тут вообще Си? Там вообще просто так нельзя копировать массивы типа a = b. Нужно использовать функцию из библиотеки, либо написать свою. А если ты будешь использовать указатели (или ссылки в С++), то получится такая же хуйня как в питоне - когда поменяешь значение переменной в одном массиве, то оно и в другом массиве поменяется.



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

Вывод о си можно легко сделать по организации цикла, все писали по началу так
for i in range(len(somelist)):
...

вместо

for index, someitem in enumerate(somelist):
...
391 1192778
кто нибудь юзал psycopg2? перечитал документацию, но пока так и не смог реализовать Insert с переменными. Это вообще работает?
изображение.png117 Кб, 1280x1024
392 1192786
Где VScode фанатик, когда он так нужен?
Как можно отключить проверку линтерами на определенном файле? А то джанго-файлы светятся как рождественская елка, и это бесит. почему производители серьезных вещей хуй кладут на восьмую ПЕПу?
393 1192823
>>192543
По ткинтеру все же придется покурить мануалы. Он не настолько прозрачный, как вывод хэллоуворлда или рисование черепашкой.
Ну, и он вообще как бэ говно визуально.
394 1192826
>>189879
Создай файл в котором пиши таймдату последнего выполнения. При вызове скрипта проверяй время сейчас > время_последнего_выполнения + 24, и если условие выполняется то скрипт делается, и в конце в файл пишется текущее время.
395 1192962
Аноны, здравствуйте, пришел с таким вопросом. Сам я учу джанго. Питон знаю нормально, так же знаю html/css, хочу стать бекенд разработчиком. Делаю для себя разные сайты, так потренироваться, разные форумы, магазины и тд, сталкиваюсь с тем что нужен js конкретно jquery и ajax. Вопрос: стоит ли тратить время на изучение фронт составляющей (js, jquery и ajax) или же оттачивать онли django и питон. Питон нравиться, есть желание стать бекенд разработчиком. Еще вопрос, если захочу фрилансить, знание одного бека будет достаточно?
396 1192975
>>192962
1. Русский подучи немного
2. На одном бэкэнде не выедешь особо, понимание JS понадобится, но он же простой на базовом уровне, быстро выучишь. Тем более Ajax, там же по сути 10 строк кода на фронте, что бы послать реквест и получить успешно/нет ответ. Да и с jQuery тоже самое, если что, по ходу разберешься в нем.
397 1192976
>>192778
Эм. Ты наверное как-то жопой читал документацию, это же простейший кейс. Все ? заменяются переменными в cursor.execute.
398 1193007
>>192976
дело оказалось в том, что при миграции из скулайт банальный int недостаточен для сохранения юникстайм. А он до миллисикунд и нах не нужен. Тем более селект по нему. Обломно 8 бит тратить на это. Урезал с обехи концов просто и встало, как надо. Вобще, конечно, перед началом проекта нужно даже прототайп по уму страться. Ато работает, да ладно. Хотя итеративное улучшение не имеет конца.
399 1193009
>>192962
кароч, не с этого начинаешь. Если три типа фрилансеров. Первый, это когда ты работаешь на крупную кантору, и у тебя боковичек проходит, ато и на удаленку тебя переводят. Там ты по-сути себе хозяин и продаешь свой труд не получая ограничения на локацию. Хоть из леса работай, или с феста какого. Второй тип - это когда ты прошел уровень пидора на апворке и других фриланс конотор, а именно: работал полгода-год за 100-200 баксов в месяц, а потом репу прокачал из крутишься в 6-9 баков, потом в 8-12, потом резко до 20 баксов. Потом просто начинаешь выбирать и торговаться, потому что у тебя есть выбор. Пока выбора в заказах у тебя не будет, ты не сможешь дампить свой ценник. Тут тебе сарафанка в твоей лакации и заказы с апворка. Выбор есть. Это складывается в моем случае в 3 года. По ходу, ты встречаешь много технологий, которые еще продаешь на своей локации. Допустим, ты реализовал рест апи на андоиде под любое устройство, считай пол дела. Потом тебе и таксо и магазины и логисты - ток в путь. И есть третий вид фрилансеров. Это когда ты делаешь для себя и на этом имеешь деньги. Просто свои сервисы. Хорошо заходят агрегаторы, разного рода автоматизация, допустим из моего опыта адаптор для риелторов из крупного агенства, через которое они могли одновременно рассылать объявы на много ресурсов. Если ты фрилансер третьего вида, то ты - менеджер экономист, плюс у тебя есть прог скилл. Ты сам видишь куда что надо, проводишь аналитику, ресерч и дохуя предлагаешь, ну а потом даже можешь повыбирать
400 1193010
>>193009
пардонирую за ошибки, ибо пьян. Конечно не дампить, а задирать
401 1193018
>>192502
>>192823
Там API простенький, остальные варианты сложнее.
Можно еще PyGame использовать.
Вот пример вывода текста:
https://gcup.ru/publ/engines/osnovy_pygame_vvedenie/2-1-0-257
Можно выводить и картинки.
402 1193021
>>188085 (OP)

> python


> змеи

403 1193088
>>192975
>>193009
Спасибо за ответы.
404 1193091
>>193021
Во-первых, питон - это семейство змей.
Во-вторых, на пике именно питон.
405 1193092
os.plock(op)
Lock program segments into memory. The value of op (defined in <sys/lock.h>) determines which segments are locked.
Availability: Unix.

Скажите, пожалуйста, какой эффект дает этот вызов, и каким может быть значение op?
Верно ли, что это позволяет предотвратить перекат памяти процесса в подкачку?
Спасибо.
406 1193098
Traceback (most recent call last):
File "./nh11", line 128, in <module>
os.plock()
AttributeError: module 'os' has no attribute 'plock'
Как это нет атрибута, когда по документации есть? ЧЯДНТ?
407 1193106
>>192786
Если у тебя pylint, то можешь добавить коммент перед блоком с ошибкой #pylint: disable=номер или название ошибки
Например #pylint: disable=e1011
Разные ошибки можешь через запятую перечислять. А если хочешь сразу весь файл проигнорить, то #pylint: disable=all
408 1193284
>>193091
дебил python читается как пайтон и не имеет отношения к змеям вообще никакого
409 1193301
Котаны, никак не могу осилить ООП. Вот тут - https://repl.it/repls/LateComfortableExams - есть 2 класса. NetworkConfig получает протокол, домен и порт и клеит из них базовую урлу. TestSuite наследуется от NetworkConfig, получает имя и эндпоинт, с помощью которого формируется тестовый урл (базовый урл + эндпоинт). Но интерпритатор ругается, говорит что TestSuite тоже должен получить домен, порт, вот это всё. А я хочу чтобы он только базовый урл наследовал. Как правильно?
410 1193327
>>193301
Как ты получишь базовый урл, которому нужен протокол, домен и порт, не передавая ни протокола, ни домена, ни порта? Когда ты делаешь super()__init__() ты просто вызываешь __init__ функцию суперкласса, которая ожидает 3 аргумента, и передаешь ей только 1 - base_url, который к тому же и не определен в __init__ TestSuite
411 1193334
Ребзя, не кинете ссылочку, на годные исходники сеньоров, чтоб набраться опыта и узнать какие-нибудь фишечки и профессиональные фичи использования пайтона? инбифо гитхаб
412 1193343
>>193284
Какой умный малыш. А уроки сделал?
413 1193354
>>193334
Сам задал вопрос, сам и ответил.
414 1193371
Зачем нужен Python, когда есть free pascal? Такой же простой, есть ООП.
питон.png148 Кб, 600x600
415 1193400
>>193284
Ты либо очень тупой, либо тролль несмешной. Если первый вариант, то что ты видишь на логотипе?
416 1193405
>>193400
Комик группу Монти Пайтон
417 1193422
Господа, как в matplotlib отобразить числа у minorticks?
Отображаются лишь у мажорных.
Делаю так
https://hastebin.com/upocosenoh.makefile
418 1193423
>>193354
Имплаинг гитхаб не - собрание говнокода дебилов вроде меня. Где я тебе сеньоров с открытыми исходниками найду?
419 1193426
Куда пихать random.seed если в программе много файлов? Влияет ли он на генераторы рандома из других библиотек вроде numpy (у которой есть свой numpy.random.seed(seed=None))?
420 1193431
>>193327
так ведь я думал что создам инстанс класса NetworkConfig, передам его в TestSuite, и вуаля! Соотвественно будет объект с базовым урлом в аттрибутах, откуда он и будет передан. Что я понимаю не так?
421 1193433
>>193405
Ну и шизик.
422 1193434
Ребята, такая задача; нужно найти кубический корень из числа(числа на входе всегда такие, что корень получится целым). Так же результат мне нужен типа инт, тк на его основе буду массив трехмерный строить. Подскажите самое удачное рещение этой задачи, а то гугл столько велосипедов выдал, що я хз. Вот такой способ: x = a(1/3) выдает приблизительное значение. Пока придумал разве что округлять число до целого, но это все костыли какие-то
423 1193439
>>193434
from luboiUchebnikPoPitonu import naitiKubicheskyKorenIzChisla
424 1193441
>>193431

>Что я понимаю не так?


Как работают функции, аргументы и наследование. Ты книжки вообще читал? Если ты думаешь, что написав class TestSuite(NetworkConfig) ты как-то указываешь Питону, что ТестСьют должен брать инстанс Нетворка и сам догадаться, как из него все нужное извлечь и записать, то ты неправ совсем.

>создам инстанс класса NetworkConfig, передам его в TestSuite


Ну значит делаешь инстанс, а в __init__ TestSuite надо будет обращаться к атрибутам\методам инстанса NetworkConfig и что-то с ними делать.
425 1193512
Скажите мне, пожалуйста, как на вашем языке создать простую программу для просмотра изображений jpg png bmp? Хотя бы несколько советов дайте, чтобы было от чего оттолкнуться.
426 1193515
>>193512
Берешь либу pil и выводишь. Для интерфейса юзаешь tk например. Ну или можешь системным в ос показывать просто выполняешь типа так (в линуксе)

import os
os.system("xdg-open tmp.png")
427 1193582
Вечер в тредю. Имею некоторый бэкграунд разработки на шарпах плюс асп.нет кор, обучаюсь достаточно быстро. Реально ли месяца за три выучить пайтон на уровне, достаточном для работы за 60-70к в ДС?
428 1193584
Что нужно для минимума и куда, собственно, идти искать на джуна вакансию после того как отчислюсь? Или с питоном в СНГ никак?
429 1193585
>>193515
В пиле можно изменять размер?
430 1193592
>>193584
Джанга.
431 1193597
>>193400
Хохлов?
432 1193599
>>193592
Ты б ещё фронтэнд посоветовал. ПО кто-то занимается?
433 1193601
>>193585
Члена? Нет. Картинки? Да.
1495565876130285892[1].jpg21 Кб, 1000x300
434 1193608
>>193597
Как-то так.
435 1193626
>>193515

>просто выполняешь типа так


image.show() же, зачем мудрить.
436 1193655
>>192962
Блять, не попадай в эту ловушку. На jquery возможно писать только костыльное неподдерживаемое говно. Иди сразу в vue или react. Не повторяй моих ошибок. Сейчас всё на реакт с этого говна переписываем, уже третий месяц.
437 1193663
>>193426
Модули в питоне это синглтоны
438 1193681
>>193663
Тоесть, надо пихать все и везде отдельно?
439 1193686
>>193655
Не слушай его, никакого реакта и тем более редукса. А vue верно, годнота.
440 1193692
>>193426

>Влияет ли он на генераторы рандома из других библиотек


Если эти библиотеки его испольуют — да, очевидно. На нампи нет, у них своё.

>>193681

>Тоесть, надо пихать все и везде отдельно?


?!

Где ты хочешь засидить генератор, туда и пихай. Где-нибудь близко ко входной точке, например. От задачи зависит же.
441 1193694
>>193426
Не понятен твой вопрос.
Ты думаешь функция их твоего модуля повлияет на одноимённую функцию из какой-либо библиотеки?
442 1193698
>>193694
Я запускаю 1.py, который берет функции из 2.py ... N.py, в которых используются рандом генераторы из библиотек random, numpy, etc. Как мне установить один сид на весь проект? Достаточно ли написать random.seed() в 1.py? Или нужно добавить numpy.random.seed() и остальные? Или нужно добавить это во все файлы 1.py ... N.py?
443 1193718
>>193698
Судя по этому вопросу:
https://stackoverflow.com/questions/36304187/is-there-a-good-way-to-share-the-seed-of-random-between-modules-in-python
нет, seed не шарится, если не шарить самому.
444 1193810
>>192179

>копировать имя оригинального файла,


Ты и так это имя знаешь, иначе как ты открываешь файл?

>производить основные операции,


>удалять оригинальный файл,


Ты и так удаляешь бэкап

>присваивать его имя новому файлу.


Ты при открытии файла всё равно указываешь имя.

Только в твоём варианте ты просто так данные на диске копируешь, которые тут же перезаписываешь целиком. Представляешь, сначала гигабайт на диске передвинуть, а потом просто удалить это всё, зачем?

Вообще, обычно сначала пишут во временный файл, а затем им заменяют оригинал. Не уверен, есть ли нюансы, если исходные данные из этого же файла читаются, но по идее не должно быть. https://repl.it/repls/PreciousDishonestHashmaps
445 1193814
>>193698

>Достаточно ли написать random.seed() в 1.py?


Да. Сам генератор-то глобальный, достаточно в одном месте инициализировать.

>Или нужно добавить numpy.random.seed() и остальные?


Ну ты что используешь, то и вызывай, блин. Выше уже отвечал, что random на numpy.random не влияет. Какие там у тебя ещё другие библиотеки понятия не имею, сам протеструй, на что они опираются.

>Или нужно добавить это во все файлы 1.py ... N.py?


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

>>193718
Тут о другом речь же — о шаринге значения перемной (а уж сид это или нет разницы никакой).
446 1193816
447 1193965
>>193655

>На jquery возможно писать только костыльное неподдерживаемое говно


Совсем долбоеб? Ты хоть понимаешь как оно работает?
1446126766-b3d34c196d04ab964aac6d788523569e.jpeg66 Кб, 500x374
448 1194080
>>188085 (OP)
Имеется ли некое подобие autoexec для консоли Python (в Pycharm) и как вообще из консоли вызывать файлы с кодом ?

Я редактирую некий скрипт в открытом в Pycharm файле, но иногда нужно попробовать какую-то операцию/и в консоли, т.к. это удобней, чем запускать часть скрипта . Однако, предварительно нужно как минимум ввести команды загрузить нужные модули, подключить директории, открыть файлы.

Как сделать, чтобы скрипт с этими действиями (import xxxx,yyy; open (myfile1); open (myfile2);..) , например, autoexec1.py можно было вызывать сразу из самой консоли ?

Прописывать скрипт в settings-Build & Exection - Python Console не совсем подходит, т.к. для разных задач такие автоэкзеки могут быть разными.

Пока используют костыль типа import autoexec1 as a, но получается, что все объекты я должен использовать как a.x1, a.x2...., что неудобно

В общем, можно ли такое (запуск набора команд через короткую команду) сделать в консоли или проще записать их где-то и ctrl-c ctrl-v в консоль ?
449 1194103
>>194080
1. python -i script.py
Выполнит скрипт и оставит тебя в интерактивной консоли.

2.

>все объекты я должен использовать как a.x1, a.x2....,


>from autoexec1 import *



3. exec(open("./path/to/script.py").read(), globals())

Бонус:
4. export PYTHONSTARTUP="path/to/script.py"
И будет выполняться при каждом запуске интерпретатора. Удобно всякие частоиспользуемые urllib'ы и нампи там подгружать, например.
ruspugachevXA.jpg31 Кб, 700x495
450 1194152
>>194103

>все объекты я должен использовать как a.x1, a.x2....,


>from autoexec1 import *



>exec(open("./path/to/script.py").read(), globals())


пасиб братюнь. Только пришлось еше open (... , encoding='utf-8') сделать, хотя Python 3 должен жи файлы в UTF без доп настроек открывать

>python -i script.py

451 1194156
А возможна ли такая запись если в библиотеке несколько элементов которые можно отдать функции :

somepr = somef
func.somef
452 1194162
>>194156
ладно потом сам провепб прийду
453 1194179
>>194156
>>194162
Иди проспись лучше.
454 1194185
>>194179
Не могу , всегда сплю одмнаковое количество времени 4 часа не могу не больше не меньше может бывает у кого думаю из-за нагрузки
455 1194211
>>192449
ну, во-первых - тесты. никакая хуйня не пушиться в репу без тестов, автоматизированных с помощью CI. во-вторых, грумить таски на мелкие фичи. в-третьих, каждая фича - отдельный мердж реквест. четвертое и последнее - код ревью каждого реквеста. тщательное блять. джун завтра зассыт и съебет, а разгребать тебе, так что не пропускай даже маленький кусочек говно, заставь его навести порядок. покрытие тестами ни при каких условиях падать не должно. внимательно проверяй насколько хорошо разобраны кейсы. обращай внимание на цикломатическую сложность написанного джуном кода - если у него там ольше двух уровней вложенности или несколько ифов - он через пару суток уже не поймет собственный код и разгребать это опять таки тебе. в общем, говно легче разгребать ложечкой, а не ведрами таскать.
456 1194319
>>194211
Спасибо тебе, антош, учту на будущее.
457 1194356
Где там на гитхабе искать проекты, в которых покапаться, разобраться какие решения и как всё работает? Через поиск что-то мусор один, чёрт ногу сломит.
458 1194393
>>194356
Ищи что тебя интересует, не ищи рандом. Веб — ищи веб, геймдев — ищи геймдев, итд.
459 1194416
Ребзи, спасайте, угораздило вкатиться в питон при написании диплома.
Есть текстовый файл, в каждой строке которого 4 пробела, а затем число вида 3.890190741743E-02
Мне нужно записать число из каждой строки в трехмерный массив. Я уже почти наговнокодил алгоритм для обработки этих данных, время поджимает, а я не могу нормально из файла данные переписать. Подскажите как без подводных камней нормально создать массив, допустим 30х30х30 Я так понял что для многомерных массивов нужно NumPy юзать и корректно забивать построчно в него данные из документа(нужно чтобы это были вещественные числа как в примере выше. Короче самое главное, обьясните пожалуйста как правильно к конкретной строке файла обращаться, как не обосраться из за пробелов(если они являются проблемой конеш) и как преобразовать эту строку в соответствующее число. А то мне блядь еще обработку этих данных неделю дописывать, а я их даже забить в массив нормально не могу
460 1194434
>>194416
Что такое трехмерный массив? Как он должен выглядеть?
461 1194441
>>194434
В пакете пакет с карпом в пакете.
изображение.png33 Кб, 283x498
462 1194452
>>194441
>>194416
Я тупой в общем, не знаю вашего пистона, алгоритмов и проче хуеты.

Генератор твоего файла с числами вида 3.1224Е-1488 - https://ideone.com/Nk5lCs
Генератор трёхмерного массива если я его правильно понял, нихуя не учил ж макака с переводом твоих богомерских чисел в нормальный float, но там не работает чтение из файла построчно, прогоняет только первые 30 строк и всё, лень разбираться - https://ideone.com/pEGbUG

Можно попробовать заколхозить readlines() и генераторами добавлять по единице в какую нибудь внешнюю переменную чтобы по ней читать массив со строками. Всем споки ноки. Можете обоссать мой код и сказать где косяки, будет полезно.
image.png1 Кб, 184x37
463 1194453
>>194416

>конкретной строке файла обращаться


for line in open('suka'). Если надо несколько раз обращаться suka = open('suka').splitlines(); suka[0] но тебе не надо

>как не обосраться из за пробелов


А как ты из-за них можешь обосраться? Если у тебя 4 пробела, потом число, то: line.lstrip()

>как преобразовать эту строку в соответствующее число


float спокойно переваривает такие записи
464 1194454
>>194416
1. readline
2. float(str.strip()) - и strip может даже не нужен
А вообще пандас или сам нампи должен уже уметь считать и распарить всё в numpy.array самостоятельно, если сможешь объяснить ему что ты хочешь.

> Как создать массив...


Просто берёшь и создаёшь. Хоть блядь файл в numpy.array считай и передай его в numpy.ndarray(shape=(30,30,30), dtype=float, buffer=datafromfile).

Может нехуй вкатываться в незнакомый язык за месяц до защиты диплома/курсача?
465 1194455
>>194452
Перед отходом ко сну осенило, что 30х30 = 90 - двумерный массив а нужен 30х30х30 и это нихуя не 90.
https://ideone.com/yqMVlB - генератор файла
https://ideone.com/L9g4Op - генератор массива
>>194453
сяп за float('govnoE-1')
image.png32 Кб, 694x377
466 1194471
Как запустить многопоточность? Надо, чтобы startGUI в определенное время чекал что там сделал start, и выводил это на экран. Попытался сделать поток для start - нихуя, в итоге сначала запускается start, который отрабатывает вечный цыкл, и ничего не доходит до mainloop. Вопрос, какого хуя? И как это решить?
467 1194499
>>194452
>>194455
>>194454
Спасибо парни, после работы разбрусь с тем что вы написали

>Может нехуй вкатываться в незнакомый язык за месяц до защиты диплома/курсача?


Нет выбора, мне нужно наколхозить алгоритм который расположит эти данные в массиве в нужном порядке, посчитает их координаты в модельном обьеме и выберет только нужны. Там буквально на 8 часов беспрерывного ковнокодинга если знаеь язык, но бля за паскаль меня бы защита санными тряпками закидала. Плюс нет разницы во что вкатываться, когда за месяц до защиты у тебя нихуя не сделаноэтому конечно есть рациональное обьяснение, но кому это нахуй интересно а пиздовать еще год хуи пинать ради защитыили ваще сапоги топтать совсем нет желания, лучще уж я потеряю сон на пару недель
468 1194504
>>192247
Изучи графический интерфейс и пиши, что тебе надо, если конечно основную базу знаешь.
469 1194537
>>194471
Мне плевать, что твой map живет пару секунд, не ломает ничего глобально, и вообще никак не мешает, ведь ты не пытаешься вызвать оригинальный map как функцию. Я найду и выебу тебя прямо в рот.

>Как запустить многопоточность?


Смотри картинки. Твой sim это ни разу не главный тред, а его таргет функция вызывает ГУИшный canvas. Это плохо.

>определенное время чекал

Screenshot from 2018-05-22 11-07-17.png27 Кб, 469x312
470 1194586
Поясните долбаебу почему при выполнении скрипта через терминал мне не возврашается True или False? Хотя если писать этот же код в терминале напряму - всем все возвращается?
471 1194596
>>194586
Ты с ума сошёл, куда тебе true должен верунться, в шелл, что ли? Током ёбнуть?
472 1194602
>>194586
А если ты просто про то, что ничего на экране не появляется — так ты и не выводишь. Это только в интерактивном режиме всегда пишется возвращённое значение. print() тебе в помощь.
473 1194605
>>194602

Спасибо, теперь буду знать.
474 1194620
>>194586
Всем всё платится.
475 1194645
Суп анон. Посоветуй что-нибудь для решения моей задачи. Типа теги для поиска, алгоритмы, просто укажи сторону в которую стоит смотреть чтобы не изобретать велосипед на костылях.
В общем пишу плагин для kodi(медиаплеер типа smart tv) для анимца со скрапером ссылок на видео с shikimori.
На shikimori на каждый эпизод может быть много(думаю может доходить до 50 и это только на один эпизод) ссылок с разными командами локализации и разными хостингами.

Когда пользователь выбирает эпизод в интерфейсе kodi который хочет посмотреть, то выбор ссылки для скачивания должен происходить автоматически, а эпизод сразу должен воспроизводится без лишних дополнительных пунктов и диалоговых окон.

Задача:
Сделать автоматический подбор ссылок релевантным для пользователя.
В настройках дополнения планирую добавить выбор типа локализации (озвучка, саб), и сейчас думаю добавить настройку "приоритетного списка" в котором будут находиться предпочтения пользователя, какие команды локализации ему больше нравятся.

В общем анон насоветуй хоть что-нибудь, а то кривые велосипеды изобретать не хочется
476 1194735
>>193810
Я тебя не понимаю совершенно.
Я копирую исходный файл в виде бэкапа, потому что записывать сразу же в исходник нельзя (при открытии на запись все стирается). Я беру и читаю бэкап, и строки оттуда переношу в уже голенький исходник.
Если же я буду записывать строки из оригинала в бэкап, то мне потом все равно придется взять все строки из бэкапа и поместить обратно в исходник.
Так зачем заставлять программу гонять по строкам вдвое больше, если я могу с самого начала просто создать копию оригинала и помещать строки из нее в исходник?
477 1194742
Как запустить firefox селениумом с browsec?
478 1194774
Меня этот Питон доебал уже своими заходами.
На одном компьютере скрипт с записью файла работает. Наьдругом тот же самый скрипт не работает, пока ему encoding utf8 не прописать. Причем этот же инкодинг нетработает на первом компе.
А сейчас просто какая-то поебень. Скрипт работает, если запускать его через ИДЕ. И он же, сука, не работает, если его просто даблкликом открыть. Всегда работал, щас не хочет. Какой-то трейсбек на долю секунды высвечивается, чет тип файл не найден. Ебанутый что ли? Вообще охуеть.
479 1194785
>>194774

> Какой-то трейсбек на долю секунды высвечивается, чет тип файл не найден.


/0
480 1194788
>>194774

>Скрипт работает, если запускать его через ИДЕ. И он же, сука, не работает, если его просто даблкликом открыть.


Окружение?
481 1194793
>>194537
откуда картинки? скажи плес
482 1194794
>>194793

>не уметь в гугл


Марк Лутц
483 1194806
Ананасы, начал осваивать пайтон и сразу же столкнулся с проблемой.
При вводе:
exec(open('myfile.py').read())
мне выдает ошибку :
FileNotFoundError: [Errno 2] No such file or directory: 'myfile.py'
хотя этот файл лежит в директории которая прописана в sys.path
Чому он не может найти файл?
484 1194809
>>194806
1. Пропиши полный путь к файлу
2. Найди способ посмотреть текущую дерикторию
485 1194812
>>194809

>Пропиши полный путь к файлу


помогло, но неужели мне каждый раз при обращении к модулю вводить полный путь к нему?
486 1194813
>>194812
Говорю же, найди способ посмотреть дерикторию, в которой на данный момент находишься. В пайчарме, к примеру, сразу показывается путь, в котором работаешь.
487 1194835
>>194788
Винда, ноутпад два креста.
sage 488 1194846
>>194835

>ide


>notepad++

489 1194871
Столкнулся с проблемой с неработающим выводом графика с построенными фигурами. Вернее на долю секунды окошко вывода появляется, но оно пустое. Код довольно объемный, поэтому оставлю ссылку на него - http://scikit-learn.org/stable/auto_examples/cluster/plot_cluster_iris.html
Так как код с сайта с документацией, а не с форума, поэтому, должно быть, проблема на моей стороне.

Да, я понимаю что кинуть ссылку и написать "разберитесь за меня" - это ужасно некрасиво.
490 1194911
Вот вы говорите ньюфаги, а я и сам полтора года плюсопайтоно макакингом отзанимался а всё так же ньюфаг в плане общего знания, т.е. например так и не понимаю как компоновать своё приложение. Нихуя в этой куче директорий на типичном репозитории на гитхабе не понимаю, нахуя всё это вместо пары файликов с нужным функционалом. Чё запускать то бля.
491 1194913
>>194806
open() не имеет никакого отношения к sys.path или PYTHONPATH, он всегда

>каждый раз при обращении к модулю


Модули загружаются через import. Если ты вручную читаешь файл, то ответ да, каждый раз. Либо положить свой "модуль" куда-то поближе и читать через относительный путь.
492 1194915
>>194913

>он всегда


Он всегда относительно текущей директории идёт.
493 1194968
Привет аноны. JS-фронт-макакий хочет вкотиться в питон. Скажите - доки из оп-поста актуальны?
image.png15 Кб, 926x63
494 1194990
>>188085 (OP)
Анон, а как это лучше сократить, чтобы держать лимит в 79 символов? Я все правильно сделал, по пепейту, питон вей?
495 1195020
Аноны, столкнулся очень давно с такой проблемой, что не могу записать 2 и больше переменных в файл:
file.writer(firstarg, secondarg)
Знаю что можно сделать отдельную переменную, и там воссоединить firstarg и secondarg. Но есть ли более изящный вариант?
496 1195023
>>194846
Какая разница? Работает через запуск из блокнота, не работает по клику на файл в папке.
Черная магия, ей-богу.
497 1195045
Предлагаю включить в ОП-пост следующего треда:
https://instagram.com/p/BjFD7O6lO-3/
498 1195067
>>195023
Врушка. Сделай open('./файл') и покаж ошибку
499 1195070
>>194990
if some is not None замени на просто if some. И новом блоке уже пиши if some.gettext bla bla.
Либо try используй, либо ту строку в переменную засунь, но там вроде всё равно не влезет.
500 1195071
>>194968
У нас тут не ЖС, каждый день по новому фреймворку не выходит, так что почти всё (кроме питона 2.х и всяких доисторических статей) актуально. Что именно там в шапке я, если честно, не в курсе.

>>195020
file.write(firstarg+secondarg) ?
Пишутся же в любом случае либо строки, либо байты, а значит и соединить их можно элементарно.

>>194774
Вставь ты, блин, try/catch с input()'ом да прочитай эту ошибку. А ещё лучше просто из консоли его запусти, вангую проебался ты с путями.

>>194990
is not None тебе там зачем? И раз уж всё равно на 3 строки, так и сделал бы лучше

>result = bs.find() and bs.find().get_text()


>if result == "Nothing found":


> print("Нихуя нет, блядь")


Многострочные if'ы, по-моему, это почти самое убогое, что можно сделать. Но лучше ещё мнения послушай.
Алсо, 79 знаков для лохов.
501 1195080
>>195071
Сделал, все-таки, как этот >>195070
анон сказал, вроде звучит логично.

Я тут скриптик написал, чтобы анимешные картиночки качать, может посмотрите, аноны, оцените? https://pastebin.com/JVvviYE0 над чем стоит поработать? над английским точно нужно, не судите строго за это

Думаю, что синтаксис я уже освоил, в каком направлении двигаться дальше?
502 1195090
>>195080
В целом пойдет, но условия и генераторы вырвиглазно выглядят с этим tqdm. Нужн рефакторинг, sys.argv и по мелочам. почему не requests?
503 1195095
>>195090
Юрллиб мне больше нравится.
504 1195098
>>195095
Сделай проверку на пустые теги\папку
505 1195104
крестоблядь врывается с тупым вопросом:
есть список arr = [хуй, пизда, джигурда]
я хочу выкинуть "хуй" из него:
arr = arr[1:]
куда физически денется объект "хуй", который был по arr[0]? будет существовать неприкаянный до конца процесса? этим можно как-то управлять?
506 1195106
>>195104
Пока его не соберёт сборщик мусора. В принципе можно его(gc) явно вызывать,но не советую.
507 1195107
>>195106
спасибо
508 1195108
>>195098
Ты об этом? Добавил. https://pastebin.com/BCSP4uxm

Кстати, есть ли смысл возвращать None после сис.еррора?
509 1195110
>>195108

>Ты об этом?


Не об этом. У тебя на 54 строке идёт tags = input() и tags сразу идёт в дело без проверки. Если я не введу никаких тегов - меня кинет на "главную", так задумано? Аналогично с folder = input(), я не знаю как пайтон реагирует на os.mkdir('./images//'), но ты глянь там.
510 1195111
>>195108
а sys.error это что вообще такое?
511 1195113
>>195090
Пойду ещё напишу CLI версию, тогда так же это называется? ну, типо, с параметрами из командной строки.
изображение.png11 Кб, 515x130
512 1195118
>>195113
Da. Исправляй
image.png27 Кб, 625x108
513 1195119
>>195111
И правда, блядь, что это, где я это отрыл, пиздец.
514 1195120
>>195118
Да, пойду-ка почищу все.
515 1195123
>>195108

>https://pastebin.com/BCSP4uxm


1. Коментарии кто писать будет? (нужно больше, не жалей "бумагу")
2. Проверка наличия/создания папки, лучше так будет:
if not os.path.exists(img_path):
____os.mkdir(img_path)
3. Я б заменил sys.error на:
try:
____....
except SomeError as error:
____ print(error)
3. Немного адок из-за съехавшей разметки
А так вполне себе неплохо.
P.s. В будущем перепиши на asyncio/aiohttp скачку.
516 1195124
>>195123
P.p.s Ну или заюзай sys.exit([arg]) и для каждой ошибки номер свой заюзай
517 1195126
>>195123
>>195124
Спасибо за советы, анон.
518 1195129
>>194774
Вот именно для этого придумали докер.

>даблклик


Под виндами да, боль. Но обещают в 3.7 поправить и выпилить нахуй всю эту дрисню с кодировками и посадить всех на UTF-8, даже виндоюзеров.
519 1195131
>>194911
Открой для себя setuptools entrypoints. Ещё нормальные люди обычно в README пишут как запустить.
520 1195183
Ку всем, джава господин макака итт.

Дайте самую новую самую годную книжку по питону 3 на английском без разжевываний для вкатывальщиков.

Скажу сразу, я его рассматриваю не как язык для разработки, а скорее для скриптов как замена башу и хобби типа "хакинга". Если еще будет книжка по сетевому программированию в питоне – вообще отлично.
521 1195185
>>195183
Пiшов вон
522 1195209
>>194735
Мне кажется, либо ты не понимаешь, о чём я говорю, либо ты не понимаешь, как работают операции с файлам.

>при открытии на запись все стирается


Т.е. ты скопировал кучу данных и тут же всё удалил. Тебе не кажется это немного бесполезным?

>Я копирую исходный файл в виде бэкапа


Не копирий, просто сделай исходник бэкапом, переименовав его.

>os.rename(source, backup); open(source, 'w')


>copy(source, backup); open(source, 'w')


Дадут один и тот же результат, но первое не делает ненужной работы.

>заставлять программу гонять по строкам вдвое больше


Это как раз таки ты вдвое больше нужного делаешь.

Сложно привести аналогию, так как в реальном мире "копирования" не существует, но вот представь, что тебе нужно перебрать игрушки в ящике, причём так, чтобы в конце всё оказалось в ящике с надписью "Болты", в которой они изначально и лежат. Одновременно две коробки с такой подписью иметь нельзя.
Итак, что разумнее:
1. (Твой) Взять коробку с напистаь на ней "временное", переложить в неё все игрушки (тут я как бы соединил копирование и очистку файла) а затем уже начать перекладывать игрушки обратно в уже пустую коробку "Болты", заменяя сломанные на новые, а затем сжечь коробки "временное"
2. (Мой) Фломастером заменить надпись "Болты" на "Старые Болты", взять новую коробку и написать на ней "Болты". Затем уже перекладывать игрушки из "Старых" в "Болты", заменяя сломанные на новые. Сжечь коробку "Старые Болты".

Видишь тут лишний шаг?
523 1195242
>>194742
Ты ебнишься засовывать расширения, которые должны работать после открытия я когда-то с этим ебался более 5 часов, потом просто плюнул и прокинул трафик через проксю (кстати в селениум хроме для прокси с лог:пассом отдельная ебень с плясками)
524 1195266
>>195209

>Мне кажется, либо ты не понимаешь, о чём я говорю


Внезапно!

>Я тебя не понимаю совершенно



Но я тебя понял наконец-то. Спасибо снова.
Почему ты подписываешь ящик с игрушками как "Болты"
525 1195433
>>195129

>обещают в 3.7 поправить и выпилить нахуй всю эту дрисню с кодировками и посадить всех на UTF-8


Это очень хорошие новости. Держу кулачки.
526 1195541
>>194774
Docker.
Тут где-то тред про него был, а твой вопрос прямо таки отвечает ОПу на его вопрос.
527 1195561
>>195433
Опять убивают совместимость, хорошего тут мало
528 1195579
>>195561
Нужно было ставить linux
529 1195683
В функцию поочередно идет переменная, и вместо того что бы строки добавлялись в файл, они заменяются
def writer(ips, e = "default"):
__try:
____file = open("ips.txt", "w+")
____if e == "default":
______file.write(ips+"\n")
____if e == "
______file.write(ips + " - p\n")
__except:
____print("Some problems with writing to file")
__finally:
____file.close()
Аноны, как фиксить?
530 1195687
Люди, я ньюфаг. Есть окно Tk(), в нём две кнопки, имеющие соответственно две функции (для результата нажатия на каждую кнопку). Функции работают, но результат отображается в IDE, а не в окне Tk() где сами кнопки приложения. Как отображать результат функций в самом окне под кнопками, а не выводить его в IDE?
531 1195688
Антоши, скажите - гайд в ОП посте не устарел? Планирую вкотиться в питон, курить мануалы, и следующие полгода не заебывать вас тупыми вопросами.
532 1195709
>>195687
Сука,содомит.
Гугли "вывод текста tkinter"
>>195688
Нет, не устарел.
533 1195713
>>195687

>результат отображается в IDE


Это называется консоль. IDE - это то, где ты пишешь код.
534 1195714
>>195688

>и следующие полгода не заебывать вас тупыми вопросами


Ага, держи карман шире.
535 1195719
>>195713
Нет, именно в IDE. Я нажимаю на кнопку - а в результат выводит на след. строку IDE.
E3e8Rlx3pRXvf27f7IeZgQcfZEEBLDLckV4a41YlI-g.png3 Кб, 316x58
536 1195740
>>195719
Интересно девки пляшут.
537 1195756
>>195683
w+ будет затирать все строчки, используй a+ что бы добавлять в файл.

вместо try/catch используй менеджер контекста(with).

Да и ты понимаешь что при вызове функции ты будешь открывать/закрывать файл постоянно? Намного логичнее открыть файл -> записать всё что нужно -> закрыть.
538 1195764
>>195756

>a+


Почему не просто "а"?
539 1195776
>>195764
+ означает что если файла нет, его нужно создать.
540 1195781
>>195776
оу, нет обосрался чутка. + означает открыть для чтения/записи. Так что да, + тебе не нужно.
541 1195791
Парни, скорую помщь мне по братски
Как записать в файл переменную типа float и turple?
а в идеале еще и результат этой строки
max = np.unravel_index(np.argmax(ar, axis=None), ar.shape)
542 1195793
>>195791
pickle?
543 1195909
>>195791

>Как записать в файл переменную типа float и turple?


str() или json.dump() в зависимости от задач.

>Экземпляр какого-то np класса


Скорее всего >>195793 подойдет, если этот файл ты будешь читать тоже питоном. Иначе - преобразуй его в json или yaml. yaml - если его будут читать люди, иначе - json.
544 1195914
>>188085 (OP)
Как изменить maximum recursion depth ?
545 1195923
А помимо джанги и монги какие обычно самые распространённые библиотеки подразумеваются?
546 1195936
>>195923
бэкбон
547 1195961
Начал читать книгу по питону 2017 года и дошел до комплексных чисел. Я вообще не знаю что это такое.Это сильно нужно?Это ведь вроде какая-то сложная математика, блин, я думал таких вещей в питоне не будет, там же вроде без знания математики можно изучать, не?Какие еще комплексные числа...погуглил и нихуя не понял. Короче, комплексные числа нужно изучать отдельно?Все это делают?
548 1195981
Как в бесконечном цикле обновлять plt.show() графика из matplotlib?
549 1195988
>>195961
Да, учи отдельно, вдруг пригодится.

>>195981
Никак, ты будешь рисовать каждый раз новый в новом окне. Если тебе нужны динамические графики - почитай про Dash.
550 1195990
>>195988
Спасибо, но это веб-макакинг какой-то, попробую matplotlib.animation.FuncAnimation
551 1195995
>>195990
Веб-макакинг уже не провославно?
Удачи
552 1196089
>>195688
У нас тут не ЖС, каждый день по новому фреймворку не выходит, так что почти всё (кроме питона 2.х и всяких доисторических статей) актуально.
553 1196092
>>195914
import sys
sys.getrecursionlimit() # актуальный лимит
sys.setrecursionlimit(100) # ставишь свой
Но осторожно, если выставишь слишком много, то программа может вылететь.
sage 554 1196178
>>195561
Бетку уже выкатили, можно пробовать.
555 1196385
>>195961
Если ты не знаешь, что такое комплексные числа, даже погуглив, то могу гарантировать, что в жизни, и уж тем более в твоём программировании на питоне, они тебе не будут нужны.

>>195981
https://bastibe.de/2013-05-30-speeding-up-matplotlib.html
демка подобного метода когда-то давно стыренная откуда-то https://pastebin.com/JVfALYKq

>>196089
Эй, ты зачем мой пост украл?
556 1196389
А сколько сейчас средняя по рынку для джуна в дс?
557 1196499
>>196385
Я кстати тот JS макакий что вкатываетсч в питон. Прочел относительно бегло "кусь питона". Хочу сказать что все же для новичка она не полна. Не очень подробно развернута система классов. Как передается в экземпляры класса self. Как определяется контекст вызова. Как работает все это ? В js прототипы . Короче маловато )
Леса.png438 Кб, 570x585
558 1196516
>>196499
https://www.youtube.com/watch?v=SJ8z-TF07s4
https://www.youtube.com/watch?v=mTp2pLEoDaI
И вообще отсмотри
https://www.youtube.com/playlist?list=PLlb7e2G7aSpTTNp7HBYzCBByaE1h54ruW

Алсо, я тоже начал изучать Питон после JS и как же мне блять горит от того что хотя они очень похоже внутри, даже в плане ООП, но в Питоне всё няшно и удобно, а в JS - ёбанный пиздец.
Ящитаю корень всех зол - то что JS трясётся над обратной совместимостью, а так бы давно все косяки поправили. А Питон на совместимость срёт и правильно делает.
559 1196556
>>196499
Ну так это не исчерпывающее руководство, а лишь краткий обзор фич и возможностей питона. Она ведь и совсем тонкая. За подробностями надо в другие книги лезть.
thinking-emoji-1.png44 Кб, 370x260
560 1196632
Посоветуйте какой фреймворк выбрать для api тестов. Есть вариант с behave, но я незнаю насколько это подойдет именно для api тестов
561 1196635
>>196092
Спасибо анон !
562 1196637
>>196499

>Не очень подробно развернута система классов


Так там всё интуитивно понятно же.

>Как передается в экземпляры класса self.


У нас ебли с this'ами. self явно передаётся в метод класса (соответственно, и имя может иметь любое), т.е. при вызове obj.method(a, b) питон на самом деле под капотом просто вызывает Class.method(obj, a, b).

>Как определяется контекст вызова.


Опять же, у нас нет ебли с this'ами, так что того контекста можно сказать и нет. Вызванные у объекта методы всегда будут иметь этот объект в качестве self'а.
Есть всякие контекстные менеджеры, но там всегда всё явно указывается.
563 1196654
>>196632
Falcon
564 1196658
>>196654
мне для тестирования
565 1196774
А что почитать по этому вашему DATA SCIENCE и ALGORITHMS? Чтобы с примерами на питончике и понятным языком? Неважно, на каком языке. Желательно, чтобы можно было купить бумажную версию в каком-нибудь чиай-городе или на озоне в моей мухосране другого нет.
566 1196957
567 1197141
>>188085 (OP)
А есть какая-нибудь короткая книжечка по фуллстэку без воды чтоб прочитать всё за 15 минут и научиться, ну, для тех кто умный такой?
568 1197183
Ребятушки, помогите плес нубу. Суть в том, что пишу игру текстовую, очень простенькая. Вопрос, как эту хуйню запустить? https://repl.it/repls/WiryGrowingHexadecimal
569 1197191
>>197183
забыл. Суть игры в том. что она рандомно выбирает фигуру и рандомно присваивает параметры. Далее спрашивает у пользователя площадь и периметр. Должно быть, конечно, еще так, что если отвечают неправильно, но она прекращает работу, но я нихуя не понял как это сделать и хочу хотя бы ее запустить.
570 1197243
>>197141
Иди нахуй, если не осилил литературу в шапке глянуть.
>>197183

> Game()


И что должно выполняться, по твоей логике?
571 1197261
>>197243
Я хз, мне нужно запустить выполнение функций из класса Game. Есть шанс это запустить?
572 1197263
>>196957
там же ЛИСП, не?
574 1197272
>>197261

> Я хз


> мне нужно


Может быть для начала хоть одну книжку по основам прочтёшь?
Даже если ты запустишь - оно не будет работать вообще никак. У тебя синтаксические ошибки там.

> функций из класса


> функция


> из класса


Ещё раз - читай литературу вначале.
Для запуска метода класса, нужно к нему обратиться, обращение делается через точку Game().StartSosat()
575 1197290
>>197272
Окей. понял. Буду курить литературу, спасибо, анончик.
576 1197327
>>197290
Не за что.
А тот код удали и напиши заново, соблюдая всякие PEP`ы и здравый смысл.
577 1197347
Суп питонусы. Простой вопрос.
Есть список который нужно обработать.
Нужна функция которая будет обрабатывать этот список.

Как лучше реализовать это? Сделать функцию, которая будет работать с одним элементом списка, и зацикливать этот список на уровень выше, или сделать цикл внутри функции?

Меня интересует скорость таких подходов, влияет ли на скорость многократный вызов функции или нет? Если нет, то сделаю функцию для обработки одного элемента, а не списка, т.к. это гибче.
578 1197349
579 1197370
>>197349
И точно! С моим стремлением к однострочным выражениям странно, что я так редко использую map.
580 1197380
s = ["asd","das","asdas"]
def ppp(x):
print(x)
map(ppp,s)

И какого хера оно ничего не показывает? Объясните тупому начинающему на пальцах
581 1197404
Sup, петушки питонщики.
Ну ка поясните быстро по полочкам что бы я не перерывал гугл.
1) Норм 2D движок для реализации карточной игры
2) Норм GUI для Шиндос.
Писал давно и тогда были ебаные PyGTK и Tkinter. PyGame в принципе полностью устраивает меня для моих целей а вот интерфейс хотелось бы посимпатичнее так как вышеуказанные говно полнейшее. Отказываюсь верить что в 2018 все еще не делают красивый интерфейс на питоне и я не о PyQt.
sage 582 1197405
>>197404
Tkinter, PyGTK, PyQT5
583 1197535
>>197370
Попробуй ещё распулить по ядрам через мультипроцессинговый аналог, сразу раза в 4 быстрее.
584 1197595
Как реализовать графический редактор в GTK? Есть только DrawArea, в которой только и можно линии рисовать програмно.
585 1197596
Никто не хочет совместно поучавствовать в соревнованиях kagel, попробовать свои силы в простых испытаниях, набить портфолио?
587 1197602
>>197596
Оставь фейкопочту, через две недели отпишу.
588 1197604
>>197602
Школьник, плез
589 1197607
>>197596
моя телега
@Valenso56
Пишите по делу и сразу пару строк о вашем бэке
590 1197616
А как правильно обновлять питон, чтобы не проебать все установленные модули и не устанавливать всё заново по мере необходимости? Они ведь все лежат в директории определённой версии питона.
591 1197622
>>197616
Все через pip
Но не факт что не проебешь все, так как совместимости то нет.
592 1197630
Как на Django правильно реализовать авторизацию через проверку auth_key из вк-приложения?
https://vk.com/dev/apps_init?f=3. auth_key

Где производить эту проверку?
593 1197634
Есть ли смысл учить джангу в 2018-м?
594 1197653
>>197604
Хуёльник. Отпуск у меня.
595 1197656
>>197630
Есть же django social auth, там куча готовых виджетов для такого

>>197634
Нет, учи JS-стэк
596 1197662
>>197653
Так теперь называют подготовку к ЕГЭ? Школоло, не агрись. Будет и на твлей улице проект. Готовься к экзаменам.
597 1197669
>>197662
Ох, зеленый у нас тут объявился
Молодец, продолжай
598 1197672
>>197669
Ну на хуй ты маняврируешь то? Дохуя взрослым хочешь показаться?
599 1197676
>>197672
Я не понимаю, схуяли ты доебался к тем двум неделям? С чего ты взял что у мен ЕГЭ?Я в принципе из беларахи и, у нас ЦТ Но тем не менее, я школку уже закончил, как и универ, а ты проецируешь свои фантазии на окружающих, пиздуй назад в /б/ к сородичам и там "тралль"
image.jpeg159 Кб, 500x503
600 1197677
>>197676
Не указывай куда мне идти. Мне допизды как вы в potato republic называете ЕГЭ. Хорошо, я поверю, что у тебя 2 недели «отпуска» и ты закончил ВУЗ. А теперь успешный погромизд отъебись от меня.
601 1197689
>>197677
Напоминаю, что это ты ко мне доебался, унтерок
602 1197691
>>197689
Коммунист, отъебись от меня. Иди интернационал петь в центральном парке.
603 1197694
>>197656

>Нет, учи JS-стэк


Но я хочу стать питон-разработчиком, а aiohttp на hh упоминается только в вакансиях сеньоров с 200к+
604 1197708
>>197595
Бамп
605 1197768
>>197595
а че ты хочешь? Что бы всё готовенькое было? только симпортить и всё?
606 1197796
>>197768
Нет, я хочу знать как это вообще работает. Как получить координаты нажатия, например? Координаты при зажатии, в конце. Как сохранять одновременно и на холсте и в памяти чтобы работать с буфером обмена?
607 1197831
>>197694
Если нужно сделать обычносайт, то твой выбор лишь Django/Flask. Aiohttp тоже учи, но как дополнение, под узкие задачи, ну и в принципе его юзать вместо requests, если нужно делать много долгоиграющих запросов.
608 1197848
609 1197972
Есть ли модуль для асинхронного ввода и обработки команд? Чтобы питон что-то там делал, выводил текст и так далее, а если я ввожу что-то, что ранее/в коде обозначено как команда, то некая функция вызывается. Доступа к переменным не нужно, этакий интерфейс для управления получается.
Я, конечно, могу и сам накостылять через треды или https://repolinux.wordpress.com/2012/10/09/non-blocking-read-from-stdin-in-python/ но хочется уже готовое и красивенькое, с историей, поиском, копи-пастом, автокомплитом, чтобы нормально передвижение курсора работало, отдельная строка для ввода и так далее.
Пилил такое на ЖСе себе, на питоне уже лень, хоть там и пара сотен строк всего был.

Сама задача: хочу запилить себе интерактивную обёртку над телнет либой с плюшками.
610 1197974
Как скопировать и вставить любой файл из буфера обмена? Пытаюсь нагуглить способы, но там жуткая и не очень понятная ебля
611 1198062
>>197974
win32clipboard
612 1198064
Джангоебы, хочу чтоб с админки можно было несколько фоток в модель заливать. Есть ли какой-нибудь гайд для нубов? Нашел такое, но чет не выходит -https://blog.rousek.name/2017/08/11/uploading-multiple-files-in-django-admin/
613 1198065
>>198062
Да, только из говна и палок там можно сделать работу с текстом. А вот как работу с файлами организовать - вообще не получается
614 1198117
Го меряться, наконец статистика подъехала:
http://pepy.tech/
615 1198118
>>198117
А вот, кстати, и применение подобной няши(не так давно поднималась тема типизации такой) на практике(выглядит непривычно):

> def find_random_projects(self, nr_items: int = 10) -> List[Project]:


https://github.com/psincraian/pepy
616 1198120
>>198118
бесполезная хрень.
617 1198129
Вызываю в отдельном треде через subprocess.run баш-скрипт, в котором после некоторых манипуляций с именами переменых и ffprobe'а вызывается ffmpeg, выдирающий первый кадр из видео (в ffmpeg ссылка передаётся).
Всё работает прекрасно, кроме того, что почти всегда после вызова питоньего скрипта ломается терминал: нажатие enter'а не переносит на новую строку, а добавляет "user@host:path $" на ту же, введённый текст не отображается, а нажатие стрелки вверх не показывается предыдущую команду (хотя если нажать enter, то она выполнится).
Что и где ломается? Упрощённо выглядит примерно так: https://pastebin.com/C9NQvEV4
618 1198165
Двач, выручай!
Как в этой задаче считать входные данные?
http://pythontutor.ru/lessons/lists/problems/kegelbahn/
619 1198167
>>198065
Файл в буфере обмена это на самом деле текстовый путь до этого файла, так что не вижу проблем.
>>198129

>Вызываю в отдельном треде через subprocess.run баш-скрипт


В отдельном процессе

>после вызова питоньего скрипта ломается терминал


А если запустить башскрипт, то такого не происходит?

>stdout=subprocess.PIPE


Зачем это?
Вообще, что тебе в итоге нужно получить? Только скриншот?
620 1198220
>>198167

> не вижу проблем.


А можно пример тогда?
621 1198231
>>198220
Мне лень качать, устанавливать и запускать винду в виртуалке ради этого.
Скопированный в буфер обмена файл - это не весь файлик, выгруженный в оперативку, это только строка вида "file:///path/to/file"
Соответственно, если тебе нужно с указанным файлом что-то сделать - делаешь сплит по 3 слешам, берешь 1-й элемент массива. А дальше что тебе нужно сделать - ты не сказал.
622 1198232
Для любой операции с файлом тебе нужен либо путь (желательно абсолютный), либо открытый файловый объект.
Путь у тебя есть, что тебе еще нужно?
623 1198235
>>198167

>В отдельном процессе


Не, я в отедельном треде запускаю отдельный процесс :3 и дожидаюсь прямо там его выполнения. Их 50 штук просто, а сетевых запросов много. В питоне жонглировать Popen'ами как-то было лень, вот и въебал тредов.

>А если запустить башскрипт, то такого не происходит?


Нет. Проблема именно в использовании stdout/stderr. Я там забыл упомянуть, в ffprobe 2>&1, а в ffmepg 2>/dev/null ещё присутствуют, но это так-то только на одну команду же должно распространятся в любом случае.

>stdout=subprocess.PIPE Зачем это?


А, ну там в конце echo $out_filename ещё делается, мне его захватить надо.

>Вообще, что тебе в итоге нужно получить? Только скриншот?


Да, получить скриншот (названный по длительности видео) и его имя (путь к файлу) для дальнейшей работы.

Я и ранее встречался с подобной поломкой текущей вкладки/сессии терминала, и тоже к субпроцессами было связано, где-то какой-то поток не закрывается правильно, видимо.
624 1198250
Есть два модуля и основная программа, к которой эти модули привязаны. Программа и два модуля имеют 3 разных окна. Сами модули и программа работают, но не в том порядке: сначала действуют два модуля и только в конце основная программа. Как задать порядок программа-модуль1-модуль2? Просто при запуске файла сразу начинает работать модуль1, а основная программа действует лишь после двух модулей и из-за этого не несёт никакого смысла.
625 1198260
Решил вкатится в питонпрограмиринг. Пошел по гайду, судя с статьи на хабре стоит начинать с лутца 4 издания питонг лернинг.
Так вот само издание вышло в 2009г, статья с хабра 2013. Уже есть 6 издание, не лучше начать с него. Или особой разницы нет?
626 1198274
>>198231
Мне бы его скопировать в другую дерикторию
627 1198294
>>198250
Что за поток сознания?
Как ты запускаешь всё?
Код неси.
>>198260
Нет. Ты всё равно не прочтёшь и забьёшь хуй.
628 1198313
>>198294
program.py
from tkinter import
import module1
import module2
def b5():
return module1
def b6():
return module2
root = Tk()
root.title("Семён оказался на мели")
root.geometry("380x250")
btn4 = Button(text="Семён пошёл на работу", command=b5)
btn5 = Button(text="Семён остался дома", command=b6)
btn4.pack()
btn5.pack()
root.mainloop()

module1.py
from tkinter import

def b1():
label = Label(text="Семён win")
label.place(relx=.2, rely=.3)
return label

def b2():
label1 = Label(text="Семён fail")
label1.place(relx=.2, rely=.3)
return label1

root1 = Tk()
root1.title("Семён работает")
root1.geometry("380x250")
btn = Button(text="Семён работал усердно", command=b1)
btn1 = Button(text="Семён ленился", command=b2)
btn.pack()
btn1.pack()
root1.mainloop()

module2.py
from tkinter import *
def b3():
label2 = Label(text="Семён win")
label2.place(relx=.2, rely=.3)
return label2

def b4():
label3 = Label(text="Семён fail")
label3.place(relx=.2, rely=.3)
return label3

root2 = Tk()
root2.title("Семён остался дома")
root2.geometry("350x280")
btn2 = Button(text="Семён стал мангакой", command=b3)
btn3 = Button(text="Семён воровал еду", command=b4)
btn2.pack()
btn3.pack()
root2.mainloop()
628 1198313
>>198294
program.py
from tkinter import
import module1
import module2
def b5():
return module1
def b6():
return module2
root = Tk()
root.title("Семён оказался на мели")
root.geometry("380x250")
btn4 = Button(text="Семён пошёл на работу", command=b5)
btn5 = Button(text="Семён остался дома", command=b6)
btn4.pack()
btn5.pack()
root.mainloop()

module1.py
from tkinter import

def b1():
label = Label(text="Семён win")
label.place(relx=.2, rely=.3)
return label

def b2():
label1 = Label(text="Семён fail")
label1.place(relx=.2, rely=.3)
return label1

root1 = Tk()
root1.title("Семён работает")
root1.geometry("380x250")
btn = Button(text="Семён работал усердно", command=b1)
btn1 = Button(text="Семён ленился", command=b2)
btn.pack()
btn1.pack()
root1.mainloop()

module2.py
from tkinter import *
def b3():
label2 = Label(text="Семён win")
label2.place(relx=.2, rely=.3)
return label2

def b4():
label3 = Label(text="Семён fail")
label3.place(relx=.2, rely=.3)
return label3

root2 = Tk()
root2.title("Семён остался дома")
root2.geometry("350x280")
btn2 = Button(text="Семён стал мангакой", command=b3)
btn3 = Button(text="Семён воровал еду", command=b4)
btn2.pack()
btn3.pack()
root2.mainloop()
629 1198361
>>198313
Ебать ты шутник.
На Pastebin лей.
630 1198363
>>198313
Ты сделал какое-то говно. Ты запускаешь три разных ткинтера, три разных мейнлупа. Если тебе нужно несколько окон, то погугли, как это сделать.
631 1198420
>>198313
И насчёт

>def f(): return module1


Это хуета несусветная. На строке

>import module1


У тебя уже исполняется весь файл.

Запихни всё, что в глобале из модулей в функцию и вызывай её когда надо. Того, что у тебя хуёвая архитектура это не отменяет.
632 1198426
>>198363
Мне бы всё наоборот в одном окне, но не знаю, как сделать.
633 1198651
>>197831
А чем плох асинхронный пул реквестов?
у вашей обсосанной aiohttp совместимости с более старыми версиями нет из-за того что какой-то дятел решил ввести типизацию нерабочую
634 1198739
>>195183
automating boring stuff
635 1198880
>>198129>>198167
Хех, пока решал другие проблемы случайно нашёл, как воспроизвести синдром: перевести stdin в raw режим:

>import sys


>import tty


>tty.setraw(sys.stdin)


И будет достигнут тот эффект, который я описывал.

Ну а дальше мысль легко пошла: ffmpeg же действительно имеет интерактивный режим (по-дефолту), видимо и менявший режим stdin'а, но почему-то не возвращавший его назад. Добавил -nostdin в вызов и всё стало окей. Спасибо мне.
636 1198937
А перекат-то будет?
637 1199271
ньюфажный вопрос, не кидайтесь говном:
for i in list:
list[i+1] = 'какая-то хуйня'
Выйдет string index out of range, конечно. Как без лишних if по достижению конца списка перейти в начало списка? Чтобы list[0] = 'какая-то хуйня'
638 1199273
>>199271
У тебя i принимает значения из списка, если что
639 1199282
>>199273
Ладно, я имел в виду вот что:
for i in range(len(list)):
if list[i+1] == 'какая-то хуйня':
list = 'такая-то хуйня'
Мне нужно, чтобы последний элемент менялся, если выполнено условие для первого элемента.
640 1199283
>>188085 (OP)
Есть тут аноны, которые шарят в pyqt?
Добавляю в qgridlayout n-ое количество кнопок,на определённые позиции, после чего мне нужно удалить их и добавить столько же на те же самые позиции, но после удаления кнопок, визуально они стоят где надо, но их индекс в qgridlayout стал выше
Например у меня поле было из кнопок 4 на 4, индекс левой верхней = 0, после удаления и добавления новых кнопок её индекс стал 4/8/хуй пойми какой. Уже второй день ебусь и не могу понять что не так(дебагером прошёлся, удаляю все кнопки)
Кто-нибудь с подобным сталкивался?
641 1199293
>>199282
for i in range(len(list)):
if list[i + 1] == 'одна штука':
list[-1] = 'другая штука'

Ты это имеешь в виду?
642 1199294
>>199293
бля, опять проебался.
Вот:
for i in range(len(list)):
if list[i+1] == 'какая-то хуйня' and list[i-1] == 'какая-то хуйня':
list = 'такая-то хуйня'
643 1199295
>>199293
Фу, черт, как ты первую строку переписал.
Ну и это, ты бы лучше спискам имя list не давал
644 1199298
>>199295
Я не называю списки listами, естественно. У меня там вообще матрица.
645 1199306
>>199271

>Как без лишних if по достижению конца списка перейти в начало списка?


lst[(idx+n) % len(lst)]

Можешь ещё обратить внимание на itertools.cycle, но это не совсем подходит для твоей задачи присвоения значений.

Теоретически, если тебе нужно только одина раз зациклить, можно схитрить и обходить в обратном порядке, тогда отрицательные индексы как раз зациклят https://repl.it/repls/SpicyAdvancedRectangle

>>199294
на последнем элементе i+1 же эксепшн вызовет, нужно range(len(lst)-1).
image.png118 Кб, 350x151
646 1199397
>>199306

>lst[(idx+n) % len(lst)]


Бля, вот оно! Спасибо, братуха, от души!
647 1199435
def add(n):
if n == 0:
return 1
return add(n - 1) + add(n - 1)

анонуши, обьясните принцип работы этой функции плес. Нихуя не могу понять как он возвращает значение, почему тут не получается бесконечное количество операций?
648 1199436
>>199435
def add(n):
...if n == 0:
......return 1
...return add(n - 1) + add(n - 1)
649 1199438
>>199436

>return add(n - 1) + add(n - 1)


вот конкретно тут, что он возвращает?
650 1199458
>>199438

>вот конкретно тут, что он возвращает?


add(n-2)2 + add(n-2)2"

Почитай про рекурсию, добавь print(n) в начало функции и вызови её, посмотри, что происходит.
651 1199459
>>199458
Там умножить на два было. Но это всё равно шутеечка, не обращай внимания.
652 1199460
>>199458
смотрел. Я правильно понимаю, что в итоге функция возвращает количество сложенных единиц от >in f == 0: return 1 ?
Тупой (w. Пахом, Галида).webm11,9 Мб, webm,
560x420, 4:52
653 1199524
Так блять, что-то я запутался с __hash__ и мутабельностью.

Вот есть к меня мутабельный класс.
Внезапно, по-дефолту он является хешируемым, наследует object.__hash__, который насколько я понимаю что-то вроде return hash(id(self)).
Это нормально что мутабельный класс является хешируемым и может например в качестве ключей dict'а использоваться?
sage 654 1199530
>>199524
Аноны есть ли у кого нормальная инструкция по деплою FLASK +nginx +uwsgi максимально простая?!?
656 1199566
>>199460

>количество сложенных единиц от >in f == 0: return 1 ?


Нихуя не понял, что это значит, но в развёрнутом виде да, там будет какое-то количество "1+1"-ов.

add(3) = add(2) + add(2)
add(2) = add(1) + add(1)
add(1) = add(0) + add(0)
add(0) = 1
=>
add(3) = add(2) + add(2) = (add(1) + add(1)) + (add(1) + add(1)) = ((add(0) + add(0)) + (add(0) + add(0))) + ((add(0) + add(0)) + (add(0) + add(0))) = ((1 + 1) + (1 + 1)) + ((1 + 1) + (1 + 1)) = 8.
657 1199757
>>199566
ну да. это и имел ввиду. Получается что ((1 + 1) + (1 + 1)) + ((1 + 1) + (1 + 1)) исходят от >in f == 0: return 1. вот я до этого не мог допереть. Спасибо. анон
658 1199759
>>199757
только начал учить пайтон, еще мозги не мыслят как надо. До этого был гуманитарий до мозга костей.
659 1199815
Вообще я перекатами не занимаюсь, но т.к. больше никто перекатить не желает - перекатил я:
>>1199814 (OP)
>>1199814 (OP)
>>1199814 (OP)
>>1199814 (OP)
>>1199814 (OP)
660 1199846
вопрос к каноничному пайтон анону.
есть ли какие предписания, сколько методов, функций следует объединять в один класс?
661 1199878
Настоящий перекат, если что:
>>1199534 (OP)
Гжатскаяулица(Санкт-Петербург).JPG2 Мб, 3264x2448
662 1202493
Ищу человека, шарящего в Python для помощи ньюфагу в его работах. Телега: @bitardtg.
663 1203302
>>199282
итерируй по два или сколько тебе нужно элемента за раз

не изменяй список в цикле, а создавай новый
664 1204156
Хелп, вообще не ставятся пакеты в Питоне с помощью pip из-за того, что у меня имя пользователя (и папка пользователя) на 10 сперме на кириллице, не ставятся ни скачанные самостоятельно, ни скачанные pip, везде ошибка при установке из-за вышеуказанной проблемы. Как избежать этих проблем без смены имени пользователя и имени папки (пару раз таки удавалось пакет поставить даже с этим, но это чудо было просто)?
665 1204242
>>204156
не вижу связи... поставь питон в C:\PYTHON и пакеты будут ставиться туда... не в %USERPROFILE% дело как мне кажется
666 1204456
>>204242
У меня конкретно ошибку из-за папки с названием на кириллице выдаёт, да и на форуме говорят, что в этом у многих проблема и этим вызвана эта ошибка.
667 1204465
>>204242
Всё, переустановил на жёсткий диск, отлично работает.
Тред утонул или удален.
Это копия, сохраненная 26 июля 2018 года.

Скачать тред: только с превью, с превью и прикрепленными файлами.
Второй вариант может долго скачиваться. Файлы будут только в живых или недавно утонувших тредах. Подробнее

Если вам полезен архив М.Двача, пожертвуйте на оплату сервера.
« /pr/В начало тредаВеб-версияНастройки
/a//b//mu//s//vg/Все доски