Ответы пользователя по тегу Python
  • Как сделать так что бы телеграмм бот при ошибки, запускался заново, python?

    Wolfnsex
    @Wolfnsex
    Если не хочешь быть первым - не вставай в очередь!
    Если я правильно понял Ваш вопрос - в Вашей программе возникает какая-то необрабатываемая ошибка, в результате которой она "вылетает" (завершается) и нужно запустить её заново. Если так, то на вскидку есть несколько вариантов:
    • Обернуть весь код который вызывает ошибку в обработчик типа try/except

    Или, если по какой-то причине это невозможно (например, после данной ошибки программа работает со сбоями) можно воспользоваться следующими вариантами:
    • Программа Supervisor - позволяет (пере-)запускать программы и контролировать их работу (если не ошибаюсь, эта штука тоже написана на Python)
    • Создать свой сервис - что на мой взгляд удобнее и с большой вероятностью не потребует установки дополнительного ПО, но потребует прав администратора в системе
    Ответ написан
    Комментировать
  • Возможно ли объединять .exe с .txt, используя Python?

    Wolfnsex
    @Wolfnsex
    Если не хочешь быть первым - не вставай в очередь!
    Сразу уточню, что возможно я не до конца понимаю о чём речь и не понимаю вообще что такое ".dat" и зачем он в данном случае нужен. Но, суть вашего вопроса напомнила мне мои потуги ~15-летней давности написать собственный архиватор, который мог бы создавать само-распаковывающиеся архивы. В те времена, я достаточно дотошно изучал структуру .EXE-файлов... и в какой-то момент обнаружил, что Вы можете дописывать в конец практически любого (исключения в основном составляют программы проверяющие собственную целостность при запуске) .EXE-файла любые другие данные. Более того, все само-распаковывающиеся архивы работают именно по такому же принципу - в конец .EXE-файла - просто дописывается архив, после чего, при запуске, файл (SFX-архив) читает сам себя, смещая указатель на длину (размер) исходного .EXE-файла (за которым соотв. идёт уже архив).

    Иными словами, Вы можете дописывать что угодно в конец EXE-файла не нарушая его работоспособность, хоть TXT-файлы, хоть картинки, хоть BluRay фильм туда добавьте... Делается это максимально просто на любом (ну или почти любом) языке, просто открываете .EXE-файл, в бинарном режиме, на запись, открываете другой файл (текстовый или любой другой), так же в бинарном режиме, смещаете указатель в первом файле в самый конец, пишите данные из 2-го файла. Собственно... и всё. Причём тут конкретно Python - я понятия не имею.

    P.S. Кстати да, можете эксперимента ради найти "башку" от любого самораспаковывающегося архива (это которая .EXE) и дописать ей в конец архив, в результате чего обычный архив превратится в SFX/EXE...
    Ответ написан
  • Возможно ли на Пайтон написать достойное приложение Android?

    Wolfnsex
    @Wolfnsex
    Если не хочешь быть первым - не вставай в очередь!
    Скажите насколько реально создать качественное приложение для Android на Python с kivy?
    Всё зависит от того, чем именно измерять качество.

    Или лучше другой язык изучить для этих целей? Порекомендуйте начинающему разрабодчику :-)
    С учётом того, что основным (я бы даже сказал "нативным") языком Android'а является Java - думаю, вряд программы на каком-то другом языке, будут настолько же качественными, насколько программы написанные на Java'е. И не по тому, что Python чем-то "хуже", а по тому, он не поддерживается платформой (по крайней мере, я о такой поддержке ни разу не слышал) "из коробки" и все программы написанные таким образом будут либо транслироваться в Java-код, либо работать через какую-то "прокладку", что в обоих случаях "качества" им не добавляет.
    Ответ написан
    5 комментариев
  • Как работать одновременно с несколькими экземплярами класса?

    Wolfnsex
    @Wolfnsex
    Если не хочешь быть первым - не вставай в очередь!
    Видится мне, что ответы на Ваши вопросы легко находятся поисковиком, в т.ч. поиском на Тостере... Например: раз, два, etc.
    Ответ написан
  • Правильо ли я понял суть экранированных последовательностей?

    Wolfnsex
    @Wolfnsex
    Если не хочешь быть первым - не вставай в очередь!
    С помощью служебных символов имеется возможность указать специальные символы, которые называются экранированные последовательности (\n, \t, \a и т.д).
    Не до конца понятен смысл этой фразы.

    Экранированные последовательности представляют служебные символы которые сложно ввести с клавиатуры.
    Нет. Например, \t, \n, \r и т.д. ввести с клавиатуры не представляет собой вообще никакого труда.

    Так уж повелось, с давних времён, во многих языках программирования, программах, файлах конфигурации и т.д. (хотя безусловно не везде это так), символ \ обозначает, что идущий следом за ним символ является специальным или его нужно экранировать. Например, если вы в командной строке линукса напишите \ и нажмёте [Enter] - ввод продолжится с новой строки, в ином случае, нажатие клавиши [Enter] будет означать завершение ввода команды и (вероятнее всего) начала её исполнения. Но, иногда нужно или просто удобно, вводить команду в несколько строк...

    В т.ч. например, в регулярных выражениях, ряд символов носит специальный смысл, в т.ч. такие символы как: . (точка), [, ], (, ), и т.д., и что бы использовать эти символы как "обычные" (что бы они "потеряли" своё специальное значение и стали "простыми" символами), их нужно предварительно экранировать.

    P.S. Мне кажется, Вы как-то очень сложно описали простую вещь, как-то "слишком по научному".
    Ответ написан
    8 комментариев
  • Какая разница между C# и Python?

    Wolfnsex
    @Wolfnsex
    Если не хочешь быть первым - не вставай в очередь!
    Просто, что отличает эти языки при написании десктопных приложений?
    Нативность процесса, в первую очередь. И возможно конечная кросс-платформенность полученных решений. В C#, точнее в платформе .NET есть отличная интеграция (лучше слова подобрать не смог) с такими привычными многим штуками как WinForms например, и вообще он изначально создавался конкретно для разработки чего-то подобного, именно под Windows (в первую очередь). Python изначально разрабатывался как платформо-независимый язык и в своём базовом арсенале, чего-либо сравнимого с функционалом построения различных форм на C#/.NET, из коробки не имеет. А ещё у C# есть отличная IDE идущая вместе с ним в комплекте (Visual studio), причём бесплатная, а ещё там есть WPF и разные другие штуки. Но я бы всё равно не сравнивал языки в таком контексте, слишком "топорное" сравнение.

    Скорость? (хотя это метрика относительная, у любого языка есть 100500 способов ускориться)
    Я бы не стал заострять внимание на этом показателе.

    На каком языке проще использовать возможности 64-битной архитектуры?
    Не понятно, про какие именно возможности идёт речь... Но, по моему, от языка это вообще мало зависит.

    На каком языке проще сделать программу что бы она запускалась как можно на больших версиях винды без переделки, т.е. XP, Vista, 7, 8, 8.1, 10 и т.д.?
    На любом языке, в но в качестве платформы - я бы порекомендовал конкретно .NET Framework 4.0, т.к. более поздних версий оного под XP, насколько я помню, не существует.

    *но тут стоит обратить внимание, на то, что с большей долей вероятности, в систему для начала всё-таки придётся установить .NET, т.к. нужная версия оной есть далеко не всегда. Эту проблему так же решают инсталляторы, но размер инсталлятора самой платформы - тоже далеко не маленький. Современные ОС семейства Windows (10-ка точно) предалгают пользователю загрузить нужный .NET Framework при его отсутствии - автоматически.

    На каком языке проще добраться до системных API если мне надо добраться до аудиоустройства или видеокарты? (ну просто С мы тут не рассматриваем в сравнении)
    Не могу сказать наверняка, но скорее всего, ни на каком из них. Из коробки, языки высокого уровня, обычно не поддерживают низкоуровневые операции. Готовых же библиотек, в т.ч. низкоуровневых, для компенсации данного недостатка хватает обычно для любых языков. А вообще, это очень обширная тема, "добраться" до устройства можно очень разными способами... и на разных уровнях. Можно написать свой драйвер (в этом случае, вряд ли какой-то язык из списка подойдёт), а можно использовать WinAPI или какие-то готовые функции написанных кем-то ранее драйверов...
    Ответ написан
    Комментировать
  • Могут ли несколько запущенных в Pycharm копий одной моей программы писать в один и тот же файл данные?

    Wolfnsex
    @Wolfnsex
    Если не хочешь быть первым - не вставай в очередь!
    Запускаю 5 копий своей программы через pycharm, все они записывают данные время от времени в один и тот же файл. Чем это может грозить?
    Не думаю, что механизмы для работы с файлами Python чем-то отличаются от подобных механизмов в других языках. По этому, могу предположить, что если не вешать на файл блокировки (и не снимать их в последствии) - это может грозить хаотичностью этих самых данных в файле, а максимум - ошибкой во время записи (и то не факт).
    Ответ написан
    Комментировать
  • Как вывести список всех своих друзей в ВК Python?

    Wolfnsex
    @Wolfnsex
    Если не хочешь быть первым - не вставай в очередь!
    Подскажите, как с помощью Python, получить список всех своих друзей в ВК
    Обычно взаимодействие с ВК осуществляют с помощью VK API, а потом уже Python или не Python - особого значения не имеет.

    Касательно конкретно Python'a + VK API - в поисковике вбиваете "vk api python" - там масса статей, думаю смысла перечислять их все особого нет?

    Конкретно по поводу друзей пользователя: клац
    Ответ написан
    3 комментария
  • Нужен ли python для системных администраторов?

    Wolfnsex
    @Wolfnsex
    Если не хочешь быть первым - не вставай в очередь!
    Есть ли реальная выгода от питона в системное администрировании?
    На мой взгляд - да, вполне себе есть. Python - довольно лаконичный язык, в виду чего писать на нем и "стильно/модно/молодежно" и банально удобно, удобно делать множество разных мелочей - например, удобно работать со строками. Ну и ещё он идёт комплектом с большинством дистрибутитвов Linux'а и еже с ними... в виду чего его ещё "удобнее" использовать (т.к. всё нужное уже стоит).

    Знаю, что ряд тулзов написано на питоне, но при этом их можно было бы написать и на других языках.
    Я Вам больше скажу, они были бы ощутимо производительнее, и возможно даже лучше по ряду других параметров, если были бы написаны на Си. И это касается не только каких-то "тулзов", о которых Вы говорите, это касается примерно 99% программ/"тулзов"/etc. Практически что угодно можно написать "на других языках".

    P.S. Всё выше сказанное - исключительно личное мнение и опыт и на истину в последней инстанции - не претендует.
    Ответ написан
    Комментировать
  • Что выбрать Python(Django) или PHP(Laravel/Yii)?

    Wolfnsex
    @Wolfnsex Куратор тега PHP
    Если не хочешь быть первым - не вставай в очередь!
    Что выбрать Python(Django) или PHP(Laravel/Yii)?

    Когда люди спрашивали "какой линукс лучше?", один умный человек сказал - лучше тот линукс, который знает Ваш знакомый сисадмин.

    Тут ситуация - совершенно аналогичная, учить (для начала) лучше то, что готов Вам преподавать Ваш ментор (на счёт наставника в институте - я лично сомневаюсь, но знать как оно там у Вас лично - не могу).

    Второй момент - смотря для чего учить? Что Вы хотите делать в итоге? Блоги? Для этого однозначно Django/Python лучше подойдут. Хотите работать? В какой стране? Например, в США будет по определению популярен C# во всех его формах и проявлениях, т.к. вендор .NET-платформы - сам находится в той же стране, со всеми вытекающими... Как только определяетесь со страной, с/в которой хотите работать, идёте на местный фриланс и смотрите кол-во работы. Понятное дело, что и исполнителей будет больше, и т.д., и что в среднем +/- на одну каждую единицу технологий будет приблизительно равное кол-во исполнителей, но популярность технологии N привлекает не только исполнителей, а ещё спонсоров и тех кто в итоге продвигает проект пополняя сообщество конечных разработчиков.

    Единственное, с чего бы я начинать не советовал - это с Yii, так как вектор его развития непонятен, он уже больше 3-х лет висит в версии 2.0 и когда будет 2.1 или 3.0 (и будет ли вообще) - не ясно пока. Лично я от него в своё время ушел и рад тому вполне. Но, это личный опыт и сейчас найдётся миллион человек, которые будут с полной уверенность доказывать, что я не прав.

    Я лично рекомендовал бы изучать сразу либо Laravel, либо Symfony (а лучше и то и другое, и в целом эти фреймворки имеют много общего по части внутренностей), если соберетесь в "клуб PHP-шников".

    Как уже озвучил предыдущий оратор - у PHP есть одно преимущество и недостаток в одном флаконе. Он с самых первых версий разрабатывался для создания веб-проектов (аки "сайтов"), в то время - для сайтов которые были актуальны тогда, в наше время - для сайтов (серверной части веб-проектов) которые актуальны сейчас. И это его направление очень ярко проявляется на практике... на PHP, за историю его существования вышло просто неимоверное кол-во веб-фреймворков, "плохие" умирали, те что "получше" живут до сих пор и т.д. Наверное, кол-во PHP-фреймворков (веб-направления) можно сравнить с кол-вом программ в которые Python встроен как скриптовый язык...

    Python в этом плане изначально разрабатывался как язык общего назначения и делают на нем далеко не только веб/сайты, он часто используется буквально "везде", для примера - на нем написана часть 3D-редактора "Blender3d", он не редко выступает скриптовым языком в больших и сложных программах, на нем не редко пишут прототипы больших программ и так далее. Соответственно, универсальность языка - та же "палка о двух концах", что и с PHP, только "в другую сторону".
    Ответ написан
    1 комментарий
  • Программирование на C# в Linux?

    Wolfnsex
    @Wolfnsex
    Если не хочешь быть первым - не вставай в очередь!
    Будут ли работать и работать корректно IDE (полноценные версии) Visual Studio
    Visual Studio - очень вряд ли, а вот C#-программы созданные в Visual Studio под линуксом запустить можно, с помощью Mono. Года примерно 2-3 назад я так и пытался делать, откровенно говоря, работа с программой собранной в VisualStudio (под виндой) и запущенной под Mono'й в линуксе, чем-то напоминало тестирование альфа-версии windows. Но сам факт, того, что оно запускалось и работало - на лицо. Не знаю, может быть сейчас что-то изменилось к лучшему.

    Вместо VisualStudio, разработчики Mono предлагают Вам использовать MonoDevelop. На мой взгляд, сравнивать их не очень разумно, но последний тоже имеет полное право на жизнь.

    Но вот вопрос, как обстоят дела с программированием на выше перечисленных языках в этой ОС?
    Со всеми остальными языками, кроме C# - дела обстоят на мой взгляд, отлично. Хотя, говоря про C# - я имею в виду полноценную .NET-платформу, с винФормами, WPF и всей прочей дребеденью, к которой Вы возможно уже привыкли работая в VisualStudio/Windows.

    PyCharm, SmartGit и другие проги
    PyCharm - думаю да, это же от JetBrains штуковина? Все известные мне IDE их производства одинаково хорошо работаю и в Linux и в не Linux :))

    Других "прог" там тоже хватает, думаю, касательно программ для работы с Git'ом - у Вас проблем не возникнет.

    Какие особенности, чего ждать, к чему готовиться, стоит ли вообще.
    Особенности - это кардинально другая ОС, со всеми вытекающими. Другие оболочки рабочего стола, другой внешний вид, другие... "другие" примерно всё, что Вы можете придумать. От принципов разработки ОС до всего остального. Хотя нет, некоторые сходства есть в целом. В линуксе так же есть рабочий стол, нечто напоминающее по смысл кнопку "Пуск", курсор мыши и некоторые другие случайные совпадения с другими ОС.

    Стоит ли? - ответ на этот вопрос каждый выбирает для себя сам, лично. Я для себя давно решил, что стоит, чему и рад вполне. Долго сопротивлялся и упрямился линуксу "на рабочем столе", хотя и был довольно большой опыт работы с оным и с FreeBSD ещё с лохматых времен, кода актуальными были FreeBSD-4 и Debian-3. Сейчас Windows стоит на "запасном" диске, т.к. меня там всё ещё держат несколько программ, в т.ч. для обработки звука и фотошопы последних версий. Если бы не это - давно бы сидел в никсах и жил бы спокойно и счастливо.
    Ответ написан
    2 комментария
  • Как компилировать все .py файлы в директории в .pyc?

    Wolfnsex
    @Wolfnsex
    Если не хочешь быть первым - не вставай в очередь!
    Ответ написан
    Комментировать
  • Знание многих ЯП или профессионализм в одной разработке?

    Wolfnsex
    @Wolfnsex
    Если не хочешь быть первым - не вставай в очередь!
    Собственно вопрос - есть ли смысл изучения новых языков программирование, переход с фронта на бек и т.д. , или же заниматься тем, что уже умею и стараться стать профессионалом в узком направлении?
    Если Вы чувствуете, что сможете качественно осилить и то и другое - то да. И в ином случаев, ответ будет, видимо, отрицательным.
    Ответ написан
    Комментировать
  • Какую выбрать среду программирования для Python?

    Wolfnsex
    @Wolfnsex
    Если не хочешь быть первым - не вставай в очередь!
    Поддерживаю предыдущего оратора, PyCharm - это IDE от немало известной компании JetBrains, которая среди прочего, так же сделала PHРStrom и ReSharper.

    IDE выбирается по двум основным принципам:
    1. Вам должно быть в ней комфортно работать
    2. Ваш компьютер должен её "тянуть" (что по сути является, частью предыдущего пункта)

    JetBrains выпускает не самые "быстрые" (в плане потребления ресурсов машины) IDE, но одни из самых удобных.

    Писать код Вы можете в чем угодно, хоть в Windows Notepad. Некоторые пишут код в vi и довольны им более чем. Ключевое слово тут - "удобство для Вас". Чем "круче" IDE или редактор - тем больше в нем разных "фишечек и плюшечек", таких как автоподстановка (автодоплнение) кода, интеграция с системами контроля версий или например, такими вещами, как "Vagrant" и т.д.

    Берёте любой редактор/IDE, в частности: PyCharm, NetBeans (вроде там был модуль для Python), Atom, Notepad++, Visual Studio Code и т.д., смотрите насколько Вам удобно там работать... Удобно - работаете. Не удобно, чего-то не хватает? Ищите другой.

    На конечное качество кода, это никак не влияет, исключительно на Вашу производительность и общий уровень комфорта.
    Ответ написан
    3 комментария
  • Как правильно учить библиотеки в Python?

    Wolfnsex
    @Wolfnsex
    Если не хочешь быть первым - не вставай в очередь!
    Библиотеки создаются изначально не для того, что бы их изучать, а для того, что бы решать вполне конкретные задачи. И соотв. библиотека подбирается под задачу, а не задача под библиотеку. У Вас есть реальная задача? Можно/пора подбирать для её решения какую-то библиотеку.

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

    Возможно есть какой-то резон, ознакомиться с представленным в библиотеке функционалом, в общих чертах, что бы на будущее иметь в виду, что для решения задачи N библиотека уже есть, но слово "учить" тут явно не очень подходит. Единственный случай, который отчасти можно отнести к исключениям, который представился мне за всё время моей практики - это изучение стандартных библиотек С/С++, в виду особенностей самого языка... но, как я уже говорил ранее - это скорее исключение из правил.
    Ответ написан
    Комментировать
  • Python 3 как преобразовать \xd0\xb5\xd0\xbd\xd0\xb8\xd1\x8f\xd1\x85\ в кириллицу?

    Wolfnsex
    @Wolfnsex
    Если не хочешь быть первым - не вставай в очередь!
    Может так:
    print(b'\xd0\xb5\xd0\xbd\xd0\xb8\xd1\x8f\xd1\x85'.decode('utf-8'))


    P.S. На питоне давно не писал...
    Ответ написан
    Комментировать