Заметки о Python в народном хозяйстве Linuxoйда: вызываем утилиты командной строки - Информационная безопасность - Cтатьи - Stas'M Corp.
Stas'M Corp.
Главная | Cтатьи | Регистрация | Вход
 
Воскресенье, 04.12.2016, 17:17
Приветствую Вас Гость | RSS
| ENG | RUS
Форма входа

Информация о тебе:

IP-адрес: 54.146.141.60
Браузер: Неизвестен
Основные разделы
Мини-чат
Loading Загрузка сообщений...
Наш опрос
Оцените мой сайт
Всего ответов: 1756
Главная » Статьи » Информационная безопасность

Заметки о Python в народном хозяйстве Linuxoйда: вызываем утилиты командной строки
Язык Python, разработанный Гвидо ван Россум, при всей своей простате синтаксиса обладает мощными возможностями. Поэтому находит активное применение как в науке, так и в повседневной работе с системой. Сегодня я хотел бы показать как вызывать приложения командной строки из Python. Для примера рассмотрим общеизвестную консольную утилиту wget. Эта утилита имеет следующий синтаксис вызова: wget [параметры] [адрес].
Пример вызова:

Code
wget http://www.google.ru

А если хотим сохранить закаченный материал в каком то другом месте то:

Code
wget -P /path/to/save http://www.google.ru

Просто? А как это запрограммировать в Python? Для определенности поставим задачу так: написать функцию, которая бы обеспечивала загрузку заданного файла либо в домашний, каталог, либо в заданный каталог. Фактически нам надо чтобы функция генерировала и передавала на исполнение командной оболочке в первом случае: wget url, а во втором: wget -P /path/to/save url. И здесь нам на помощь приходит модуль subprocess и его функция call(*popenargs, **kwargs). Она позволяет вызвать приложение и передать ему набор аргументов в виде кортежа:

Code
retcode=subprocess.call(["wget","www.site.com"])

В retcode идет код возврата от вызванной программы. В первом параметры передаем имя программы для вызова, а во втором параметр, при чем каждый из них идет как член картежа. А вот собственно и код самой функции полностью:

Code
import subprocess # импортируем модуль subprocess
def basic_download(key,url): # определяем функцию с двумя параметрами (первый содержит #ключи, а второй адрес)
  if url=='': # если адрес пуст вернем ошибку
    return -1
  if key=='': # если параметр key не задан, вызываем wget с параметрами по умолчанию...
    retcode=subprocess.call(["wget",url])
    return retcode
  else: # иначе
    key='-P'+key # конкатенация ключа и пути сохранения
    retcode=subprocess.call(["wget",key,url])
    return retcode

Это базовый пример, но этот модуль предоставляет куда большие возможности, в чем можно убедится заглянув сюда.
Смело указывайте на ошибки и неточности, ведь я только начинаю свой путь в Python.
P.S. надеюсь хватит сил довести до полноценной GUI оболочки для wget.


Источник: http://pylinux.blogspot.com/2010/07/python-linuxo.html
Категория: Информационная безопасность | Добавил: Del_codez (02.08.2010) | Автор: Гуров Дмитрий
Просмотров: 1712 | Теги: subprocess, консольные приложения, Call, wget, bash, python, python в народном хозяйстве Linuxой | Рейтинг: 0.0/0
Всего комментариев: 0
Добавлять комментарии могут только зарегистрированные пользователи.
[ Регистрация | Вход ]
Веб приложения
Категории раздела
Корпоративный кооператив [12]
Юмор [4]
Смешные истории из жизни корпорации
Хорошие новости от Евгения [14]
Юмористический журнал
Информационная безопасность [16]
История [2]
Рецензии и обсуждения [2]
Пожертвование / Donate
WMWebMoney transferZ358077191062
WMWebMoney transferE208225402366
WMWebMoney transferR303537803958
WMWebMoney transferB345247247920
Reg.ruReg.ru transfer9900126333
WUWestern Union transferuse feedback form
BTCBitcoin transferuse feedback form
Друзья сайта

Просим вас посещать сайты наших друзей! Они достойны такого же внимания как и мы!

Пользователи
Онлайн всего: 6
Гостей: 6
Пользователей: 0

Пользователи онлайн:
Статистика
Рейтинг@Mail.ru
Проект ReactOS

Copyright © Stas'M Corp. 2016Хостинг от uCoz