Stas'M Corp.
Главная | Cтатьи | Регистрация | Вход
 
Понедельник, 06.12.2021, 11:32
Приветствую Вас Гость | RSS
| ENG | RUS
Форма входа

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

IP-адрес: 52.205.167.104
Браузер: Неизвестен
Основные разделы
Мини-чат
Загружаем...
Пожалуйста подождите.
Наш опрос
Какой торрент трекер вы предпочитаете?

Всего ответов: 918
Главная » Статьи » Информационная безопасность

Заметки о 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) | Автор: Гуров Дмитрий
Просмотров: 3872 | Теги: subprocess, консольные приложения, Call, wget, bash, python, python в народном хозяйстве Linuxой | Рейтинг: 1.0/1
Всего комментариев: 0
Добавлять комментарии могут только зарегистрированные пользователи.
[ Регистрация | Вход ]
Веб приложения
Категории раздела
Корпоративный кооператив [12]
Юмор [4]
Смешные истории из жизни корпорации
Хорошие новости от Евгения [14]
Юмористический журнал
Информационная безопасность [16]
История [2]
Рецензии и обсуждения [2]
Пожертвование / Donate
WMWebMoney transferZ358077191062
WMWebMoney transferE208225402366
WMWebMoney transferP303537803958
WMWebMoney transferB345247247920
WUWestern Union transferuse feedback form
Друзья сайта

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

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

Пользователи онлайн:
Статистика

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