- Linux примеры python скрипты
- Устанавливаем Python на сервер
- Создаем виртуальное окружение virtalenv
- Запуск Python-скрипта с помощью Сron
- Как понять что Cron срабатывает?
- Cron срабатывает но Python-скрипт не выполняется
- Запуск Python и python-скрипт на компьютере
- Где запускать Python-скрипты и как?
- Запуск Python-кода интерактивно
- Интерактивный режим в Linux
- Интерактивный режим в macOS
- Интерактивный режим в Windows
- Запуск Python-скриптов в интерактивном режиме
- Как выполняются Python-скрипты?
- Блок-схема выполнения кода интерпретатором
- Как запускать Python-скрипты?
- Как запускать скрипт в командной строке?
- 22 полезных примера кода на Python
- 1. Получаем гласные
- 2. Первая буква в верхнем регистре
- 3. Печать строки N раз
- 4. Объединяем два словаря
- 5. Вычисляем время выполнения
- 6. Обмен значений между переменными
- 7. Проверка дубликатов
- 8. Фильтрация значений False
- 9. Размер в байтах
- 10. Занятая память
- 11. Анаграммы
- 12. Сортировка списка
- 13. Сортировка словаря
- 14. Получение последнего элемента списка
- 15. Преобразование разделённого запятыми списка в строку
- 16. Проверка палиндромов
- 17. Перемешивание списка
- 18. Преобразование строки в нижний и верхний регистры
- 19. Форматирование строки
- 20. Поиск подстроки
- 21. Печать в одной строке
- 22. Разбиение на фрагменты
- На правах рекламы
- Python с абсолютного нуля. Работаем с ОС, изучаем регулярные выражения и функции
- Содержание статьи
- От редакции
- Работаем с файлами
- warning
- Регулярные выражения
- Функции
Linux примеры python скрипты
Я, как настоящий старовер, решил построить «data-pipeline» без коннекторов и DAG-менеджеров. Положив два перста на мышку, началась упорная работа. Разобрался с API рекламных систем, установил драйвер bigquery, залил первую таблицу в датасет. Победа была близка, осталось всё автоматизировать. Я начал разворачивать Airflow, а потом проснулся и вспомнил про cron.
Вспомнив про ранее купленный VPS, куда я деплоил свой tf-idf кластеризатор. Было решено залить скрипт на сервер и настроить его запуск на 6 утра ежедневно.
Cron — это демон, а демон — это программа работающая в фоновом режиме. Ну а если вы программировали на Python — вам должны быть знакомы процессы-демоны. Запуск Cron-задания — это легко, но только в случаях когда мы говорим об выполнении php и bash скриптов. С Python всё иначе.
Устанавливаем Python на сервер
Выполняем, указные команды на примере Ubuntu.
Проверяем успешность установки командой python3.
Создаем виртуальное окружение virtalenv
Следующий шаг — изолировать наш проект в отдельное виртуальное окружение, куда мы будем устанавливать нужные нам библиотеки.
Теперь мы видим рядом в консоли перед строкой приписку (venv) — это значит, что мы в виртуальном окружении.
Запуск Python-скрипта с помощью Сron
Давай потестируем то, что у нас получилось на маленьком скрипте, который будет писать в файл дату и время его активации. Таким образом мы проверим как работает cron. Тестовый скрипт, который мы положим в корень папки проекта, у меня это / home / iakulshin / pipeline, заливаем через файловый менеджер filezilla и прочие, если вы хардкорный девопс-дата-инженер удачи вам с nano. Заливаем скрипт указанный ниже в нашу папку.
Давайте попробуем создать cron задание для тестового запуска. В целом нам будут нужны 2 команды:
Появлеятся файлик с крон задачами в редакторе nano. Наша задача установить задание, которое будет запускать наш скрипт каждую минуту.
Наконец, в файлике test.txt каждую минуту появляется текущая дата, учения завершены, теперь рассмотрим возможные проблемы и способы их устранения.
Как понять что Cron срабатывает?
Чтобы удостовериться, что cron-таск отрабатывает, нам необходимо добавить задачу и обратиться к логам сервера, для этого идем в консоль и пишем следующую команду:
В нем вы увидите следующие записи:
Это означает, что cron срабатывает и воспроизводит команду, которую вы указали после звездочек. Но что делать, если python-скрипт всё еще не работает?
Cron срабатывает но Python-скрипт не выполняется
Самая типичная проблема, которая связана с «холостым» крон-таском — это недоступность библиотек, неверный выбор virtual env и версии python. Способ выбранный выше — это способ к которому я пришел спустя десяток часов поисков и изучения stackoverflow. Что нужно проверить для успешного запуска скрипта:
Возьмите команду, которую собирались добавь в крон и запустите её, это поможет словить ошибки связанные с недоступностью библиотек. В моем случае Скрипт не видел импортируемый файл, это я вылечил добавлением папки в системный путь. Добавляем в скрипты следующий код:
Если скрипт запускается по прямой команде из консоли, но cron всё еще не выполняется, то ошибка 100% в том, что ваш скрипт запускается не из под virtualenv или вы запускаете скрипт из под python не подходящей версии, поэтому проверяем следующее:
- Мы перешли в папку со скриптом командой cd
- Мы обратились к интерпретатору python3 находящемуся в папке с виртуальным окружением нашего проекта.
В целом данный гайд должен помочь вам разобраться с запуском Python скриптов с помощью Cron. Однако, я оставлю ссылки на полезные треды в stackoverflow, где представлены дополнительные способы решения этой проблемы.
Источник
Запуск Python и python-скрипт на компьютере
Код, написанный на языке Python, может храниться в редакторе кода, IDE или файле. И он не будет работать, если не знать, как его правильно запускать.
В этом материале рассмотрим 7 способов запуска кода, написанного на Python. Они будут работать вне зависимости от операционной системы, среды Python или местоположения кода.
Где запускать Python-скрипты и как?
Python-код можно запустить одним из следующих способов:
- С помощью командной строки операционной системы (shell или терминал);
- С помощью конкретной версии Python или Anaconda;
- Использовать Crontab;
- Запустить код с помощью другого Python-скрипта;
- С помощью файлового менеджера;
- Использовать интерактивный режим Python;
- Использовать IDE или редактор кода.
Запуск Python-кода интерактивно
Для запуска интерактивной сессии нужно просто открыть терминал или командную строку и ввести python (или python3 в зависимости от версии). После нажатия Enter запустится интерактивный режим.
Вот как запустить интерактивный режим в разных ОС.
Интерактивный режим в Linux
Откройте терминал. Он должен выглядеть приблизительно вот так :
После нажатия Enter будет запущен интерактивный режим Python.
Интерактивный режим в macOS
На устройствах с macOS все работает похожим образом. Изображение ниже демонстрирует интерактивный режим в этой ОС.
Интерактивный режим в Windows
В Windows нужно открыть командную строку и ввести python . После нажатия Enter появится приблизительно следующее:
Запуск Python-скриптов в интерактивном режиме
В таком режиме можно писать код и исполнять его, чтобы получить желаемый результат или отчет об ошибке. Возьмем в качестве примера следующий цикл.
Этот код должен выводить целые числа от 0 до 5. В данном случае вывод — все, что появилось после print(i) .
Для выхода из интерактивного режима нужно написать следующее:
И нажать Enter. Вы вернетесь в терминал, из которого и начинали.
Есть и другие способы остановки работы с интерактивным режимом Python. В Linux нужно нажать Ctrl + D, а в Windows — Ctrl + Z + Enter.
Стоит отметить, что при использовании этого режима Python-скрипты не сохраняются в локальный файл.
Как выполняются Python-скрипты?
Отличный способ представить, что происходит при выполнении Python-скрипта, — использовать диаграмму ниже. Этот блок представляет собой скрипт (или функцию) Python, а каждый внутренний блок — строка кода.
При запуске скрипта интерпретатор Python проходит сверху вниз, выполняя каждую из них. Именно таким образом происходит выполнение кода.
Но и это еще не все.
Блок-схема выполнения кода интерпретатором
- Шаг 1: скрипт или .py-файл компилируется, и из него генерируются бинарные данные. Готовый файл имеет расширение .pyc или .pyo.
- Шаг 2: генерируется бинарный файл. Он читается интерпретатором для выполнения инструкций.
Это набор инструкций, которые приводят к финальному результату.
Иногда полезно изучать байткод. Если вы планируете стать опытным Python-программистом, то важно уметь понимать его для написания качественного кода.
Это также пригодится для принятия решений в процессе. Можно обратить внимание на отдельные факторы и понять, почему определенные функции/структуры данных работают быстрее остальных.
Как запускать Python-скрипты?
Для запуска Python-скрипта с помощью командной строки сначала нужно сохранить код в локальный файл.
Возьмем в качестве примера файл, который был сохранен как python_script.py. Сохранить его можно вот так:
- Создать Python-скрипт из командной строки и сохранить его,
- Создать Python-скрипт с помощью текстового редактора или IDE и сохранить его. Просто создайте файл, добавьте код и сохраните как «python_script.py»
Сохранить скрипт в текстовом редакторе достаточно легко. Процесс ничем не отличается от сохранения простого текстового файла.
Но если использовать командную строку, то здесь нужны дополнительные шаги. Во-первых, в самом терминале нужно перейти в директорию, где должен быть сохранен файл. Оказавшись в нужной папке, следует выполнить следующую команду (на linux):
После нажатия Enter откроется интерфейс командной строки, который выглядит приблизительно следующим образом:
Теперь можно писать код и с легкостью сохранять его прямо в командной строке.
Как запускать скрипт в командной строке?
Скрипты можно запустить и с помощью команды Python прямо в интерфейсе терминала. Для этого нужно убедиться, что вы указали путь до него или находитесь в той же папке. Для выполнения скрипта (python_script.py) откройте командную строку и напишите python3 python_script.py .
Замените python3 на python , если хотите использовать версию Python2.x.
Источник
22 полезных примера кода на Python
Python — один из самых популярных языков программирования, чрезвычайно полезный и в решении повседневных задач. В этой статье я вкратце расскажу о 22 полезных примерах кода, позволяющих воспользоваться мощью Python.
Некоторые из примеров вы могли уже видеть ранее, а другие будут новыми и интересными для вас. Все эти примеры легко запоминаются.
1. Получаем гласные
Этот пример возвращает в строке найденные гласные «a e i o u» . Это может оказаться полезным при поиске или обнаружении гласных.
2. Первая буква в верхнем регистре
Этот пример используется для превращения каждой первой буквы символов строки в прописную букву. Он работает со строкой из одного или нескольких символов и будет полезен при анализе текста или записи данных в файл и т.п.
3. Печать строки N раз
Этот пример может печатать любую строку n раз без использования циклов Python.
4. Объединяем два словаря
Этот пример выполняет слияние двух словарей в один.
5. Вычисляем время выполнения
Этот пример полезен, когда вам нужно знать, сколько времени требуется для выполнения программы или функции.
6. Обмен значений между переменными
Это быстрый способ обменять местами две переменные без использования третьей.
7. Проверка дубликатов
Это самый быстрый способ проверки наличия повторяющихся значений в списке.
8. Фильтрация значений False
Этот пример используется для устранения всех ложных значений из списка, например false, 0, None, » » .
9. Размер в байтах
Этот пример возвращает длину строки в байтах, что удобно, когда вам нужно знать размер строковой переменной.
10. Занятая память
Пример позволяет получить объём памяти, используемой любой переменной в Python.
11. Анаграммы
Этот код полезен для проверки того, является ли строка анаграммой. Анаграмма — это слово, полученное перестановкой букв другого слова.
12. Сортировка списка
Этот пример сортирует список. Сортировка — это часто используемая задача, которую можно реализовать множеством строк кода с циклом, но можно ускорить свою работу при помощи встроенного метода сортировки.
13. Сортировка словаря
14. Получение последнего элемента списка
15. Преобразование разделённого запятыми списка в строку
Этот код преобразует разделённый запятыми список в единую строку. Его удобно использовать, когда нужно объединить весь список со строкой.
16. Проверка палиндромов
Этот пример показывает, как быстро проверить наличие палиндромов.
17. Перемешивание списка
18. Преобразование строки в нижний и верхний регистры
19. Форматирование строки
Этот код позволяет форматировать строку. Под форматированием в Python подразумевается присоединение к строке данных из переменных.
20. Поиск подстроки
Этот пример будет полезен для поиска подстроки в строке. Я реализую его двумя способами, позволяющими не писать много кода.
21. Печать в одной строке
Мы знаем, что функция print выполняет вывод в каждой строке, и если использовать две функции print, они выполнят печать в две строки. Этот пример покажет, как выполнять вывод в той же строке без перехода на новую.
22. Разбиение на фрагменты
Этот пример покажет, как разбить список на фрагменты и разделить его на меньшие части.
На правах рекламы
Серверы для разработчиков — выбор среди обширного списка предустановленных операционных систем, возможность использовать собственный ISO для установки ОС, огромный выбор тарифных планов и возможность создать собственную конфигурацию в пару кликов, активация любого сервера в течение минуты. Обязательно попробуйте!
Источник
Python с абсолютного нуля. Работаем с ОС, изучаем регулярные выражения и функции
Содержание статьи
От редакции
Эта статья — часть цикла «Python с абсолютного нуля», где мы рассказываем об азах Python в нашем фирменном нескучном стиле. Ты можешь читать их по порядку или выбирать какие‑то области, которые хотел бы подтянуть.
Первые два урока доступны целиком без платной подписки. Этот — почти целиком: за исключением последнего примера и домашнего задания.
Работаем с файлами
Начнем, как всегда, с несложных вещей. В Python есть модуль с лаконичным названием os , который (ты не поверишь!) предназначен для взаимодействия программы с операционной системой, в том числе для управления файлами.
Первым делом, конечно, нужно импортировать его в начале нашего скрипта:
И теперь нам открываются разные интересные возможности. К примеру, мы можем получить путь к текущей папке. Сначала она совпадает с той, в которой ты был при запуске скрипта (даже если сам скрипт находится где‑то в другом месте), но по ходу исполнения программы мы можем менять это значение при помощи функции os. chdir( ) .
Если ты работаешь в Windows, то в пути к файлу или папке перед открывающей кавычкой указывай букву r (что означает raw) или вместо одной косой черты в пути ставь две.
Попробуем получить список файлов с расширением .py, находящихся в текущей директории. Для этого используем модули os и fnmatch.
Модуль fnmatch позволяет искать в строках определенный текст, подходящий по маске к заданному шаблону:
- * заменяет любое количество любых символов;
- ? заменяет один любой символ;
- [ seq] заменяет любые символы из последовательности в квадратных скобках;
- [! seq] заменяет любые символы, кроме тех, что присутствуют в квадратных скобках.
Давай безжалостно удалим какой‑нибудь файл:
А теперь создадим папку по указанному пути и сразу же удалим ее. Для этого пригодится модуль shutil, где есть функция rmtree( ) , которая удаляет папку вместе с содержимым.
Допустим, ты хочешь получить список всех файлов, содержащихся в папках по указанному пути (учитывая вложенные папки тоже), чтобы найти что‑то интересное. Скрипт будет выглядеть следующим образом:
warning
Будь осторожен — скрипт в таком виде обшарит весь диск D. Если он у тебя есть и там много хлама, то процесс может затянуться.
Функция walk() модуля os принимает один обязательный аргумент — имя каталога. Она последовательно проходит все вложенные каталоги и возвращает объект‑генератор, из которого получают:
- адрес очередного каталога в виде строки;
- список имен подкаталогов первого уровня вложенности для данного каталога;
- список имен файлов данного каталога.
Генератор — это объект, который сразу при создании не вычисляет значения всех своих элементов. Этим генераторы отличаются от списков — те хранят в памяти все свои элементы, и удалить их можно только программно. Вычисления с помощью генераторов называются ленивыми, они экономят память. Подробнее мы рассмотрим генераторы в следующих уроках.
Сейчас покажу, как узнать размер любого файла, а также дату его модификации.
Для операционных систем Unix 1 января 1970, 00:00:00 (UTC) — точка отсчета времени, или «начало эпохи». Чаще всего время в компьютере вычисляется в виде прошедших с этого момента секунд и лишь затем переводится в удобный для человека вид.
Давай пошутим над юзером: создадим какой‑нибудь файл и будем постоянно его открывать с помощью той программы, которой этот файл обычно открывается в системе:
Ниже приведен список еще некоторых полезных команд:
- os. path. basename( ‘путь’) — возвращает название файла или папки в конце пути;
- os. path. dirname( ‘путь’) — возвращает родительский путь к объекту пути;
- os. path. splitext( ‘путь’) — разделяет путь на путь и расширение файла;
- os. path. exists( ‘путь’) — существует ли путь до файла или папки;
- os. path. isfile( ‘путь’) — является ли объект пути файлом (существующим);
- os. path. isdir( ‘путь’) — является ли объект пути папкой (существующей).
Регулярные выражения
Регулярные выражения — это специальные шаблоны для поиска и замены строк в тексте. Вообще говоря, их вполне можно считать самостоятельным языком, и его изучение выходит за рамки этого цикла. Мы пройдемся по самым основам и по использованию регулярок в Python.
Подробнее о регэкспах ты можешь почитать в документации Python, в Википедии или в книге Джеффри Фридла, которая так и называется — «Регулярные выражения».
Мы не раз писали о полезных сайтах, которые помогают работать с регулярными выражениями: CyberChef, RegExr, txt2re. Помимо этого, можешь обратить внимание на сервис regex101.com и сайт RegexOne с интерактивным тренажером.
За работу с регулярными выражениями в Python отвечает модуль re. Первым делом импортируем его.
В качестве простейшего паттерна мы можем использовать какое‑нибудь слово. Пусть по традиции это будет «пиво»:
Команда re. search( pattern, string) ищет в тексте string первое вхождение шаблона pattern и возвращает группу строк, доступ к которым можно получить через метод . group( ) . Но команда search ищет только первое вхождение шаблона. Поэтому в нашем случае вернется всего один результат — слово «пиво», несмотря на то что в нашем тексте оно присутствует дважды.
Чтобы вернуть все вхождения шаблона в текст, используется команда re. findall( pattern, string) . Эта команда вернет список строк, которые присутствуют в тексте и совпадают с шаблоном.
Обрати внимание, что шаблоны в регулярных выражениях имеют буковку r перед началом строки. Это так называемые сырые строки, в которых не работает символ экранирования с помощью обратного слеша \ . При этом «сырая» строка не может заканчиваться этим символом.
В предыдущих двух примерах программ в качестве шаблона pattern для поиска строк ты использовал просто какое‑то слово. Но мощь регулярных выражений не в этом. Ты можешь заменять части шаблона специальными символами, чтобы под шаблон подходили не только конкретные слова, но и самые разные строки.
Давай, например, попробуем найти в тексте все слова, которые начинаются с «пи». Для этого используем специальный символ \ b — он означает «начало слова». Сразу после него указываем, с чего должно начинаться слово, и напишем специальный символ w , который означает, что дальше в шаблоне должны идти какие‑то буквы (плюс означает, что их может быть одна или больше) до тех пор, пока не встретится небуквенный символ (например, пробел или знак препинания). Шаблон будет выглядеть так: r»\ bпи\ w+» .
Давай попробуем выполнить чуть более сложную задачу. Найдем в тексте все email с доменом mail. ru , если они там есть.
Как видишь, мы использовали тот же трюк, что и в прошлый раз, — написали специальный символ \ b , чтобы обозначить начало слова, потом \ w+ , что значит «одна или больше букв», а затем @mail. ru , заэкранировав точку, поскольку иначе она будет означать «любой символ».
Часто бывает нужно найти какой‑то элемент строки, окруженный двумя другими элементами. Например, это может быть URL. Чтобы выделить ту часть шаблона, которую нужно вернуть, используются скобки. Приведу пример, в котором ты получишь все адреса ссылок из какого‑то кусочка кода на HTML.
В коде выше использовался паттерн r’href=»(. +?) » — в этом шаблоне искомая строка начинается с href=» и заканчивается еще одной двойной кавычкой. Скобки нужны для того, чтобы указать, какую часть подходящей под шаблон строки ты хочешь получить в переменную result . Точка и плюс внутри скобок указывают, что внутри кавычек могут быть любые символы (кроме символа новой строки). Знак вопроса означает, что нужно остановиться перед первой же встреченной кавычкой.
Знак вопроса в регулярных выражениях используется в двух немного разных смыслах. Если он идет после одного символа, это значит, что символ может присутствовать или не присутствовать в строке. Если же вопросительный знак идет после группы символов, это означает «нежадный» (non-greedy) режим: такая регулярка будет стараться захватить как можно меньше символов.
Мы можем не только искать строки, но и заменять их чем‑то другим. Например, давай попробуем удалить из HTML-кода все теги. Для этого используется команда re. sub( pattern, ‘чем заменять’, string) .
Программа напечатает строку уже без тегов, так как мы заменили их пустой строкой.
Регулярные выражения — очень мощная штука. Освоив их, ты сможешь делать со строками почти все, что угодно, а в сочетании с кодом на Python — буквально что угодно. Для начала же можешь поэкспериментировать и изменить какие‑то из приведенных рецептов.
Функции
Пришла пора подробнее поговорить о функциях. Мы уже неоднократно вызывали разные функции — как встроенные в Python (например, print( ) ), так и из подключаемых модулей (например, urllib. request( ) ). Но что такое функция изнутри и как их делать самостоятельно?
Представь, что у тебя есть какой‑то набор команд, которые нужно выполнять несколько раз, изменяя лишь входные данные. Такие блоки команд обычно выносят в отдельные кусочки программы.
В объектно ориентированном программировании функции являются методами какого‑либо класса и пишутся через точку от его названия.
У функции могут быть входные параметры — это одна или несколько переменных, которые пишутся в скобках после имени функции. При вызове функции ты можешь передать ей аргументы для этих параметров. Некоторые из параметров могут быть необязательными или иметь значение по умолчанию — на случай, если его не передадут.
Объявление функции начинается с ключевого слова def , далее следует имя функции, параметры в скобках и программный код, отделенный четырьмя пробелами. Функция может возвращать одно или несколько значений с помощью ключевого слова return . Оно, кстати, прекращает работу функции, и, если за ним идут какие‑то команды, они будут пропущены.
Для примера разберем простейшую функцию, которая будет принимать в качестве аргументов два любых числа и перемножать их, возвращая результат умножения. Назовем ее umn.
Теперь, когда ты описал функцию, далее в этой же программе можно ее вызывать.
Иногда надо задать один из параметров как необязательный, установив для него значение по умолчанию.
Теперь если ты вызовешь функцию и не передашь ей второй аргумент, то она просто будет считать его равным десяти, то есть будет умножать любое переданное число на десять.
Несмотря на то что параметр b в данном случае равен по умолчанию 10 и необязателен для передачи в качестве второго аргумента, ты по‑прежнему можешь передавать второй аргумент, если это будет нужно, и тогда в качестве b будет использовано не 10 , а переданное значение.
Внутри программы мы можем вызывать созданную нами функцию сколько угодно раз.
Давай создадим программу, которая будет считать прибавку к зарплате за каждую уязвимость, которую хакер нашел на работе. У каждого хакера будет своя зарплата, в зависимости от его ранга, но начисление прибавки для всех работает по принципу «+2% к базовой зарплате за уязвимость, если таких уязвимостей найдено больше чем три».
Сделаем функцию, которая принимает в качестве аргументов размер зарплаты сотрудника и количество найденных уязвимостей. Для округления результата используем функцию round( ) , которая округлит прибавку до целого числа.
Источник