Python, a niedobory shellowe

Python pythonem, ale jednak są takie zadania, które zdecydowanie wygodniej załatwić mi szybkim skryptem shellowym. Czasami użycie i jednego i drugiego narzędzia razem jest sensowne, a czasami nie, więc w tym drugim przypadku muszę się męczyć z robieniem niektórych rzeczy w pythonie.

Z samej swej natury shell jest takim wynalazkiem, że nic go nie zastąpi jeśli idzie o łatwość używania narzędzi shellowych (sed, grep, cut, sort, uniq, żeby wymienić te najpopularniejsze), a użycie tychże jest często jednak znacznie sensowniejsze, niż tworzenie danej funkcjonalności w pythonie.

(Ostatnio ktoś mówił, że ruby ma to fajniej rozwiązane, nie wiem, możliwe, ciekawym jak.)

Chętnie bym zobaczył w pythonie jakiś moduł "shell", czy podobnie nazwany, który po zrobieniu "from shell import *" nie zaśmieciłby mi przestrzeni nazw żadnymi zbędnymi rzeczami, ale jednocześnie dałby mi dostęp do zestawu prostych funkcji, dzięki którym mógłbym bezproblemowo odpalać narzędzia shellowe, łączyć je w potoki, przechwytywać potoki, przekierowywać im wejście i wyjście, mieć łatwy dostęp do zmiennych środowiskowych i w ogóle robić wszystkie te rzeczy, dzięki którym shell w pewnych zastosowaniach jest jednak najwygodniejszy.

Wymagałoby to pewnie sporo pomyślunku, żeby jakoś sensownie zrobić, ale imho jednak byłoby do zrobienia.

  1. 1. Jajcus

    Zajrzyj do dokumentacji modułu subprocess.

  2. 2. mmazur

    Ooo, rzeczywiście. A ja się głupi z jakimiś spawnami, popenami i innymi męczyłem.

    Aaa, to dopiero od 2.4. No cóż, trza się pewnie będzie jeszcze trochę pomęczyć. Acz poczytać nie zaszkodzi, ciekawym co tam wymyślili.

  3. 3. s

    Fajnie by było gdyby istniał pythonowy odpowiednik czegoś takiego: http://www.scsh.net tzn. może jest ale nic mi o tym nie wiadomo.

Adde commentarium: (markdown)



WARNING: If it takes more than an hour to write your comment, you'll loose it due to PHP session timeout. Just to be safe, select your comment, copy it (ctrl+c), reload this page, paste it (ctrl+v) and then click "Commentare".