854 Stimmen

Äquivalent zum Shell-Befehl "cd", um das Arbeitsverzeichnis zu wechseln?

cd ist der Shell-Befehl zum Wechseln des Arbeitsverzeichnisses.

Wie kann ich das aktuelle Arbeitsverzeichnis in Python ändern?

16voto

mrdiskodave Punkte 335

Wie bereits von anderen bemerkt, ändern alle oben genannten Lösungen nur das Arbeitsverzeichnis des aktuellen Prozesses. Dieses geht verloren, wenn Sie zur Unix-Shell zurückkehren. Wenn Sie verzweifelt sind kann das übergeordnete Shell-Verzeichnis unter Unix mit diesem furchtbaren Hack ändern:

def quote_against_shell_expansion(s):
    import pipes
    return pipes.quote(s)

def put_text_back_into_terminal_input_buffer(text):
    # use of this means that it only works in an interactive session
    # (and if the user types while it runs they could insert characters between the characters in 'text'!)
    import fcntl, termios
    for c in text:
        fcntl.ioctl(1, termios.TIOCSTI, c)

def change_parent_process_directory(dest):
    # the horror
    put_text_back_into_terminal_input_buffer("cd "+quote_against_shell_expansion(dest)+"\n")

12voto

PEZ Punkte 16398

os.chdir() ist die pythonische Version von cd .

12voto

Federico A. Ramponi Punkte 44697

os.chdir() ist der richtige Weg.

11voto

Riccardo D Punkte 520
import os

abs_path = 'C://a/b/c'
rel_path = './folder'

os.chdir(abs_path)
os.chdir(rel_path)

Sie können beides mit os.chdir(abs_path) oder os.chdir(rel_path) verwenden, es ist nicht nötig, os.getcwd() aufzurufen, um einen relativen Pfad zu verwenden.

6voto

Yauhen Yakimovich Punkte 12897

Weiter in die von Brian aufgezeigte Richtung und basierend auf sh (1.0.8+)

from sh import cd, ls

cd('/tmp')
print ls()

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X