Seite 1 von 1

Change directory in Click CLI

Verfasst: Freitag 14. Oktober 2022, 16:03
von MacGruber
Moin,

ich baue gerade ein CLI mit Click auf. Mit einer Funktion will ich zu schnell zu verschiedenen Verzeichnissen springen. Mein erster Versuch war mit os.chdir() das Verzeichnis zu wechseln, das hat allerdings keine Auswirkungen auf das CMD.

Hier der Ausschnitt der Befehl in Click.

Code: Alles auswählen

@click.command(help='Jumps to certain directory.')
@click.option('--to', help='Adrees to jump to.\nPotential values: "projects", "pictures", "2022" (or other years, if exists),...')
def jmp(to):
    from jump import jump
    jump(to)
Zum Wechseln des Verzeichnisses. Dateiname = jump.py

Code: Alles auswählen

import os
import settings
import pathlib

def jump(to):
    '''Springt zu einem gewählten Verzeichnis.'''
    
    
    s=settings.settings()
    
    
    if to=='projects':
        #Projektpfad
        path=s.return_setting('Project_Directory')
        path=pathlib.Path(path)
        
    elif to=='pictures':
        #Pfad zu Bilderablageverzeichnis
        path=s.return_setting('Picture_Directory')
        path=pathlib.Path(path)
        
    elif to.isnumeric():
        path=s.return_setting('Project_Directory')
        path=pathlib.Path(path)
        path=path.joinpath(to)
        
    #Üerprüfen, ob Pfad existiert
    if not path.exists():
        raise
    
    #Pfad wechseln
    os.chdir(path)
Am Ende bleibt das CMD leider im gleichen Verzeichnis. :(
Vom Google weiß ich nur dass auch supprocess ebenfalls nicht weiterhilft. Aber eine richtige Lösung für Windows habe ich nicht gefunden.

Weiß jemand Rat?

Gruß Sascha

Re: Change directory in Click CLI

Verfasst: Freitag 14. Oktober 2022, 16:09
von __deets__
Ich weiss nur, dass es unter Unix genausowenig geht. Autojump oder FASD muessen dort mittels Shell-Funktionen die Shell beeinflussen, weil ein Unterprozess (aus guten Gruenden!) sowas nicht darf. Wenn Windows da nicht total bescheuert drauf ist (ok, kommt vor...), dann ist das da ebenso. Wie man nun eine solche Funktion schreibt (oder ob es ueberhaupt geht), steht auf einem anderen Blatt. Aber speaking of autojump: https://github.com/wting/autojump - benutz das doch einfach. Oder schau halt nach, wie es das macht.

Re: Change directory in Click CLI

Verfasst: Freitag 14. Oktober 2022, 16:22
von MacGruber
Danke für deine Antweort __deets__
Wenn ich keine LÖsung mit Python finde, versuche ich es mal mit Autojump.

Zur erhofften Pythonlösung:
Vieleicht gibt es ja eine Möglichkeit mit einer Click Funktion? Weiß da jemand was?

Re: Change directory in Click CLI

Verfasst: Freitag 14. Oktober 2022, 17:33
von __deets__
Na schau dir doch an, wie Autojumo das macht. Das ist doch alles Quell offen.

Re: Change directory in Click CLI

Verfasst: Freitag 14. Oktober 2022, 17:48
von MacGruber
Achso meinst du das. Ich hoffe meine Python Kenntnisse reichen dafür aus. Ich werde es mal versuchen.