Уведомления

Группа в Telegram: @pythonsu

#1 Март 12, 2021 06:57:01

satfan
Зарегистрирован: 2019-02-02
Сообщения: 140
Репутация: +  -2  -
Профиль   Отправить e-mail  

Как запустить bash из скрипта Python

IDLE (Python 3.7 32-bit) Win 7
Есть такой скрипт:

 #!/bin/sh
#Преобразует ваш enigma2 userbouquet в плейлист.m3u
cd /tmp ; find -maxdepth 1 -type f -name "userbouquet.*tv" | sed 's/^..//' > list
[ ! -s list ] && echo "Нет ни одного файла userbouquet.xxx.tv в папке /tmp" && exit
while [ -s list ] ; do
    urbt=`cat list | head -n1` ; sed -i "1d" list ; echo -n "$urbt "
    grep "http" $urbt | sed -e "s/.*http/http/g" | if ! grep -qs ':' ; then
        sed '/http\|https\|DESCRIPTION/!d' -i $urbt
        sed -e 's/.*http/http/g; s/:.*//g; s/%3a/:/g; s/DESCRIPTION/EXTINF:-1, /g; s/  / /g' -i $urbt
    else
        sed '/http\|https/!d' -i $urbt
        sed -e 's/.*http/http/g; s/:/\n#EXTINF:-1,/1; s/%3a/:/g' -i $urbt
    fi
    echo "#EXTM3U url-tvg="https://iptvx.one/epg/epg.xml.gz" deinterlace=1 aspect-ratio=None" > shift
    cat $urbt | awk 'NR%2==0 {print $0; print p} {p=$0}' >> shift
    name=`echo "$urbt" | sed -e 's/userbouquet.//;s/.m3u//;s/.tv$//'`
    mv shift "$name".m3u ; echo ">> $name.m3u" ; rm $urbt ; sleep 1
done
echo '' ; echo "Готово . Можно забирать в папке /tmp"
Как его запустить на моём ПК ?

Прикреплённый файлы:
attachment userbouquet_to_m3u.zip (785 байт)

Офлайн

#2 Март 12, 2021 09:25:46

doza_and
От:
Зарегистрирован: 2010-08-15
Сообщения: 4138
Репутация: +  253  -
Профиль   Отправить e-mail  

Как запустить bash из скрипта Python

satfan
Как его запустить на моём ПК ?
Простой ответ: НИКАК
Он выполняется при помощи интерпретатора sh и использует утилиты sed,find, и т.п.. А windows7 операционная система импотент. Ничего из перечисленного в ней нет.
Сложный ответ:
Вы тем или иным способом можете запустить другую ОС на вашем ПК.
Варианты с поддержкой sh и прочего:

1. Поставить второй системой чтото типа ubuntu
2. Установить плеер виртуальных машин и накатить на виртуалку см. пункт 1.
3. Поставить msys2
4 Проапгрейдиться до десятки. ходят непроверенные слухи что там есть bash

Очень сложный ответ.

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

Для этого всего навсего надо изучить документацию по языкам программирования утилит bash, sed,grep,awk,find изучить регулярные выражения и чуток со всем этим потренироваться.

После этого вы минут за 10 перепишете это на питон и сможете перейти к установке второй ОС поскольку питона в windows7 тоже нет.



Отредактировано doza_and (Март 12, 2021 09:36:09)

Офлайн

#3 Март 12, 2021 11:26:23

PEHDOM
Зарегистрирован: 2016-11-28
Сообщения: 2196
Репутация: +  294  -
Профиль   Отправить e-mail  

Как запустить bash из скрипта Python

satfan ответ между простым и сложным:
Смотрите в сторону cygwin или minGW(msys) учитывая что скрипт примитивный возможно в них он запуститься без допиливания напильником.
Остальное требует много телодвижений см. совты doza_and



==============================
Помещайте код в теги:
[code python][/code]
Бериегите свое и чужое время.

Офлайн

#4 Март 12, 2021 22:30:17

py.user.next
От:
Зарегистрирован: 2010-04-29
Сообщения: 10003
Репутация: +  857  -
Профиль   Отправить e-mail  

Как запустить bash из скрипта Python

satfan
Как его запустить на моём ПК ?
Поставь в винду VirtualBox, в VirtualBox поставь Linux, потом директории той Linux подключи к винде. Потом в директорию /tmp виртульной системы закачай файлы для обработки, а в директорию /home/пользователь виртуальной системы закачай скрипт. Потом выполни скрипт из директории /home/пользователь виртуальной системы. (Имя пользователя задаётся при установке системы обычно. У всех оно разное. У меня - guest, чтобы максимально абстрагировать и ни с чем не перепутать.)

Это совет в том плане, что тебе изредка нужно выполнять скрипты из других систем. В винду ставить оболочку нет смысла, так как скрипт (этот и другой в перспективе) требует наличия дерева директорий Linux в нативном виде, а в винде его не воссоздашь (бывают не только пути, бывают ещё права и тому подобное, где-нибудь что-нибудь да вылезет и скрипт не сработает).

Скрипт хоть и слабый, конечно, но все плохие скрипты переписывать не будешь. Иногда нужно что-то просто запустить один раз, даже если оно на соплях только работает, и потом забыть про это навсегда. Для получения опыта можно и переписать его, конечно. Также бывают скрипты с ошибками, которые тоже есть смысл переписывать, чтобы сразу очистить от всех ошибок. Но начать лучше с простого запуска какого-то абстрактного скрипта в том окружении, которое он и ожидает.



Отредактировано py.user.next (Март 12, 2021 22:43:04)

Офлайн

#5 Март 13, 2021 09:53:07

AD0DE412
Зарегистрирован: 2019-05-12
Сообщения: 1130
Репутация: +  44  -
Профиль   Отправить e-mail  

Как запустить bash из скрипта Python

http://unxutils.sourceforge.net/
зы правда непонятно на сколько оно живое



1. пжлст, форматируйте код, это в панели создания сообщений, выделите код и нажмите что то вроде
2. чтобы вставить изображение залейте его куда нибудь (например), нажмите и вставьте ссылку на его url

есчщо

Отредактировано AD0DE412 (Март 13, 2021 09:54:20)

Офлайн

#6 Март 13, 2021 10:41:07

satfan
Зарегистрирован: 2019-02-02
Сообщения: 140
Репутация: +  -2  -
Профиль   Отправить e-mail  

Как запустить bash из скрипта Python

Всем кто ответил огромное спасибо.
У меня старый ПК, только осенью планирую купить новый.
Виртуалку не потянет.
Идеальный вариант переписать этот скрипт на Python 3.
Я только начал изучать питон. Поэтому знаний не хватает.
————–
Есть скрипт офлайн с обратной конвертацией. Но он на javascript.
Если бы его преобразовать, то было бы супер.

Прикреплённый файлы:
attachment m3u2userbouquet.rar (1,2 KБ)

Офлайн

#7 Март 13, 2021 12:19:06

PEHDOM
Зарегистрирован: 2016-11-28
Сообщения: 2196
Репутация: +  294  -
Профиль   Отправить e-mail  

Как запустить bash из скрипта Python

satfan
Я только начал изучать питон. Поэтому знаний не хватает.
Не партесь ваш скрипт нормально отработает под cygwin.

cygwin ставится за 5 минут. папка /tmp это c:\cygwin64\tmp\ где c:\cygwin64 папка куда установлен cygwin. Со временем перепишете на пайтон, если захотите.



==============================
Помещайте код в теги:
[code python][/code]
Бериегите свое и чужое время.

Отредактировано PEHDOM (Март 13, 2021 12:22:37)

Прикреплённый файлы:
attachment Безымянный.png (13,6 KБ)

Офлайн

#8 Апрель 1, 2022 13:48:50

satfan
Зарегистрирован: 2019-02-02
Сообщения: 140
Репутация: +  -2  -
Профиль   Отправить e-mail  

Как запустить bash из скрипта Python

Спасибо PEHDOM
Установил cygwin
Разобрался всё Ок.


Отредактировано satfan (Апрель 2, 2022 10:27:40)

Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version