Pracuję nad prostym skryptem w języku Python, który może używać subprocess
i/lub os
do wykonywania niektórych poleceń, co działa poprawnie.cd Terminal w danym katalogu po uruchomieniu skryptu Python?
Jednak po wyjściu ze skryptu chciałbym, aby cd
faktycznie Terminal (w tym przypadku OS X), więc po wyjściu, nowe pliki są gotowe do użycia w katalogu, w którym zostały utworzone. Wszystko następujące (subprocess.Popen
, os.system
, os.chdir
) może robić to, co chcę od ciągu skryptu (to znaczy wykonać rzeczy w katalogu docelowego), ale na wyjeździe opuszczenia terminalu na skryptu własnym katalogu, a nie docelowyminformator.
Chciałbym uniknąć pisania skryptu powłoki do pliku tymczasowego tylko po to, aby to osiągnąć, jeśli to w ogóle możliwe?
Dzięki - będę przepisywać jako skrypt powłoki i zamiast tego wywoływam Python :-) –
Nie musisz zostawiać interpretera Pythona wiszącego w pobliżu. Trzeba tylko uzyskać środowisko procesowe w pożądany sposób (np. 'Os.chdir()'), a następnie 'os.execv()' nową powłokę. Tak, nadal będziesz mieć działającą podrzędną powłokę, ale interpreter Pythona zostanie zastąpiony. http://docs.python.org/library/os.html#os.execv – msw
@msw: Nigdy nie byłem w stanie niezawodnie wyciągnąć tego na wszystkich platformach z powłokami w szczególności (szczególnie powershell), ale powinienem mieć zasugerował to. –