Переместить сценарии оболочки: Sh.py здесь, и это здорово.

?

Несколько месяцев назад я натолкнулся на эту действительно удивительную библиотеку, которая называется sh.py, которая позволяет вам вызывать программы, передавать параметры и обрабатывать выходные данные, все в рамках программы Python.

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

Итак, как мы это используем?

Я делаю несколько предположений о вас. Во-первых, вы используете Linux, OS X или FreeBSD. Как сейчас, sh.py не работает в Windows. Однако при необходимости вы всегда можете установить виртуальную машину Linux. Мой коллега Джастин Пот написал довольно полезную статью об этом, которую вы можете проверить здесь

,

Второе предположение, которое я делаю, заключается в том, что вы используете последнюю версию Python (2.7 или 3.2) и у вас установлен менеджер пакетов PIP. Если это не так, ознакомьтесь с официальной документацией по Python.

Все хорошо? Тогда мы продолжим.

Начнем кодирование

В терминале установите sh.py с помощью следующей команды.

sudo pip install sh

Причина, по которой мы здесь используем «sudo», заключается в том, что нам нужно повысить наши разрешения для добавления новых пакетов Python. Если sh.py установлен правильно, вы увидите следующие строки в вашем терминале.

Downloading/unpacking sh
Downloading sh-1.09.tar.gz
Running setup.py egg_info for package sh
Installing collected packages: sh
Running setup.py install for sh
Successfully installed sh
Cleaning up…

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

наш интернет-редактор, Сайкат Басу) или MakeUseOf Ответы.

Теперь, когда все отсортировано, создайте новый каталог. Именно здесь мы собираемся разместить весь наш код. Откройте текстовый редактор и создайте файл с именем «shtest.py». Здесь мы просто создадим новый файл, а затем перечислим содержимое каталога, в котором мы находимся. Звучит хорошо?

В shtest.py добавьте следующие строки.

шпы-shtest

#!/usr/bin/env python
import sh
sh.touch('hello')
print(sh.ls(‘-l'))

Простые вещи здесь. Давайте разберемся с этим.

#!/usr/bin/env python

Эта строка называется hash-bang и указывает вашей оболочке открыть этот файл как программу на Python. Это позволяет вам открывать его, как и сценарий оболочки (./shtest.py), вместо того, чтобы открывать его непосредственно с помощью Python (python shtest.py). Круто, верно?

import sh

Эта строка импортирует библиотеку sh, которую мы установили несколько минут назад. Мы не можем продолжать без этого, поэтому убедитесь, что это в вашем коде!

sh.touch('hello')

Возможно, вы знакомы с командой Linux «touch». Это создаст пустой файл с именем файла, которое вы укажете. Здесь мы прямо называем «touch» из Python. Как видите, мы предваряем это «sh.» И передаем ему параметр «привет».

print(sh.ls(‘-l'))

Возможно, вы знакомы с командой «print», которая выводит текст на консоль. Здесь мы передаем его «sh.ls» в качестве параметра. Это вызывает программу Linux ls, которая перечисляет содержимое каталога. Мы также передаем этот параметр ‘-l’, который выводит более подробную информацию о содержимом каталога, в котором мы его выполняем.

Это работает? Посмотреть на себя.

шпы-shtest-работа

Те из вас, у кого есть ястребиные глаза, заметят, что в этом каталоге есть еще один файл с именем «gitsh.py». Что может быть там?

Подкоманды

У sh.py есть несколько хуков для популярных программ, которые уже запечены. К ним относятся git, sudo и значительное количество утилит Linux. Это делает взаимодействие с этими сервисами из Python еще проще.

Как легко? Что ж, я покажу вам, как инициализировать пустой Git-репозиторий всего за три строки кода. Сначала создайте файл с именем «gitsh.py» и откройте его в своем любимом текстовом редакторе.

Внутри напишите следующие три строки.

shpy-gitsh
#!/usr/bin/env python
from sh import git
print(git.init())

Большая часть этого должна быть вам знакома. Вы заметите, что мы импортировали «git» из «sh». Это просто означает, что мы импортировали определенную часть функциональности из модуля, игнорируя при этом все остальное.

После этого мы инициализируем наш репозиторий.

print(git.init())

Мы говорили о печати. Вы должны заметить, что мы называем «git» без «.sh». Это потому, что мы специально импортировали функциональность git из библиотеки «sh».

шпы-gitsh-работа

И это об этом. Когда мы запустим gitsh.py, мы должны увидеть следующие строки в вашем терминале.

Заключение

Это было довольно простое введение в sh.py. Если вы хотите узнать больше об этом, ознакомьтесь с официальной документацией здесь. Однако, если вы застряли, не стесняйтесь, напишите мне комментарий ниже, и я постараюсь помочь вам.

Ссылка на основную публикацию
Adblock
detector