Sto lavorando a un semplice script Python che può utilizzare subprocess
e/o os
per eseguire alcuni comandi, che funziona correttamente.cd Terminal in una determinata directory dopo aver eseguito uno script Python?
Tuttavia, quando lo script termina mi piacerebbe cd
il Terminale attuale (in questo caso OS X) così in uscita, i nuovi file sono pronti per l'uso nella directory in cui sono stati creati. Tutto il seguente (subprocess.Popen
, os.system
, os.chdir
) può fare quello che voglio da all'interno dello script (vale a dire che eseguono roba nella directory di destinazione), ma in uscita lasciare il terminale a proprio directory dello script , non il bersaglio directory.
Mi piacerebbe evitare di scrivere uno script di shell in un file temporaneo solo per ottenere questo, se questo è comunque possibile?
Grazie - Riscriverò come uno script di shell, e chiamo il Python da lì invece :-) –
Non è necessario lasciare l'interprete Python in giro. Hai solo bisogno di ottenere l'ambiente di processo nel modo desiderato (ad esempio 'os.chdir()') e quindi 'os.execv()' una nuova shell. Sì, avrai ancora una shell subordinata in esecuzione, ma l'interprete Python sarà stato sostituito. http://docs.python.org/library/os.html#os.execv – msw
@msw: Non sono mai stato in grado di farlo in modo affidabile su tutte le piattaforme con shell in particolare (in particolare PowerShell), ma dovrei avere ha suggerito che. –