hallo, ich möchte mit einem script ind ein directory (unter linux) wechseln. also cd /path ausführen. das ist einfach per os.chdir(path). aber ich möchte das programm so verlassen, dass ich in dem directory bleibe. wie mache ich das? danke robert _______________________________________________ python-de maillist - python-de@python.net http://python.net/mailman/listinfo/python-de
Hallo Robert, On 2006-06-28 21:03, robert rottermann wrote:
ich möchte mit einem script ind ein directory (unter linux) wechseln. also cd /path ausführen. das ist einfach per os.chdir(path). aber ich möchte das programm so verlassen, dass ich in dem directory bleibe.
wie mache ich das?
ich denke, das geht überhaupt nicht, da dein Programm zwar zunächst das aktuelle Verzeichnis vom Elternprozess "erbt", aber dann nur mit seinem eigenen Arbeitsverzeichnis arbeiten kann. Kurzum, es ist eine Einschränkung von Unix, die du mit Python nicht umgehen kannst. Ähnlich verhält es sich übrigens auch mit dem Setzen von Umgebungs- variablen: Setzt man die im Python-Programm, wirkt sich das nicht auf die Umgebungsvariablen des Elternprozesses aus. Viele Grüße Stefan _______________________________________________ python-de maillist - python-de@python.net http://python.net/mailman/listinfo/python-de
On 28.06.06 21:28:12, Stefan Schwarzer wrote:
On 2006-06-28 21:03, robert rottermann wrote:
ich möchte mit einem script ind ein directory (unter linux) wechseln. also cd /path ausführen. das ist einfach per os.chdir(path). aber ich möchte das programm so verlassen, dass ich in dem directory bleibe.
wie mache ich das?
ich denke, das geht überhaupt nicht, da dein Programm zwar zunächst das aktuelle Verzeichnis vom Elternprozess "erbt", aber dann nur mit seinem eigenen Arbeitsverzeichnis arbeiten kann. Kurzum, es ist eine Einschränkung von Unix, die du mit Python nicht umgehen kannst.
It's not a bug it's a feature ;-) denke ich. Denn es waere schon reichlich unguenstig wenn ein non-privileged ausgefuehrtes Python Skript den Elternprozess nach / schicken koennte und dieser dann ein rm -rf * ausfuehrt.
Ähnlich verhält es sich übrigens auch mit dem Setzen von Umgebungs- variablen: Setzt man die im Python-Programm, wirkt sich das nicht auf die Umgebungsvariablen des Elternprozesses aus.
Genau dasselbe wie oben, waere schon reichlich doof wenn mit Hilfe einer passenden Umgebungsvariablen-Aenderung ssh ploetzlich login+Username an eine Emailadresse im Internet verschickt... Andreas -- You will have a long and unpleasant discussion with your supervisor. _______________________________________________ python-de maillist - python-de@python.net http://python.net/mailman/listinfo/python-de
Hi Robert, Am Mittwoch, 28. Juni 2006 21:03 schrieb robert rottermann:
ich möchte mit einem script ind ein directory (unter linux) wechseln. also cd /path ausführen. das ist einfach per os.chdir(path). aber ich möchte das programm so verlassen, dass ich in dem directory bleibe.
direkt geht das nicht, wie die anderen schon erklärt haben. Aber wenn es nicht plattformunabhängig sein muss und die Lauffähigkeit unter der bash und Linux ausreichen, kannst Du Folgendes machen: Lass Dein Programm "MEINPGM.py" beim Beenden das aktuelle Arbeitsverzeichnis auf der Standardausgabe ausgeben (print os.getcwd()). Mittels eines Shell-Alias kannst Du diese Ausgabe zum Wechseln des aktuellen Verzeichnisses nutzen: alias MEINPGM='cd $($HOME/bin/MEINPGM.py)' Wenn Du dann den Aufruf MEINPGM statt MEINPGM.py nutzt, stehst Du nach der Ausführung im geänderten Verzeichnis. Das Ganze ist so aber nicht fehlerresistent! Dazu bedarf es noch eines Hilfsskripts auf der Shell, das prüft, ob die Ausgabe Deines Programms einen gültigen Pfadnamen darstellt und erst dann das "cd" durchführt. Gruß Karsten -- rm -rf /bin/laden _______________________________________________ python-de maillist - python-de@python.net http://python.net/mailman/listinfo/python-de
Karsten Schulz wrote:
Hi Robert,
Am Mittwoch, 28. Juni 2006 21:03 schrieb robert rottermann:
ich möchte mit einem script ind ein directory (unter linux) wechseln. also cd /path ausführen. das ist einfach per os.chdir(path). aber ich möchte das programm so verlassen, dass ich in dem directory bleibe.
direkt geht das nicht, wie die anderen schon erklärt haben. Aber wenn es nicht plattformunabhängig sein muss und die Lauffähigkeit unter der bash und Linux ausreichen, kannst Du Folgendes machen:
Lass Dein Programm "MEINPGM.py" beim Beenden das aktuelle Arbeitsverzeichnis auf der Standardausgabe ausgeben (print os.getcwd()). Mittels eines Shell-Alias kannst Du diese Ausgabe zum Wechseln des aktuellen Verzeichnisses nutzen: alias MEINPGM='cd $($HOME/bin/MEINPGM.py)'
Wenn Du dann den Aufruf MEINPGM statt MEINPGM.py nutzt, stehst Du nach der Ausführung im geänderten Verzeichnis.
Das Ganze ist so aber nicht fehlerresistent! Dazu bedarf es noch eines Hilfsskripts auf der Shell, das prüft, ob die Ausgabe Deines Programms einen gültigen Pfadnamen darstellt und erst dann das "cd" durchführt.
Gruß Karsten
salu kasten, dein vorschlag funktioniert ausgezeichnet. nur ich so kann ich dem script keinen parameter übergeben. hast du dazu auch noch eine idee? ich möchte so was realisieren: MYCOMMAND abc sodass aufgrund von abc ein directory "berechnet" wird, in das ich wechseln will. danke robert _______________________________________________ python-de maillist - python-de@python.net http://python.net/mailman/listinfo/python-de
robert rottermann wrote:
hallo,
ich möchte mit einem script ind ein directory (unter linux) wechseln. also cd /path ausführen. das ist einfach per os.chdir(path). aber ich möchte das programm so verlassen, dass ich in dem directory bleibe.
wie mache ich das? danke robert _______________________________________________ python-de maillist - python-de@python.net http://python.net/mailman/listinfo/python-de
besten dank für die antworten ich kann mich dunkel erinnern, dass das unter windows im prinzip auch nicht ging, man dann doch irgendwie im environment des mutterprozesses rumfummeln konnte. aber eben, das war mit windows (und ein paar jahre her) robert _______________________________________________ python-de maillist - python-de@python.net http://python.net/mailman/listinfo/python-de
participants (4)
-
Andreas Pakulat
-
Karsten Schulz
-
robert rottermann
-
Stefan Schwarzer