python-3.x
  • os.path
  • 2017-11-08 1 views 0 likes 
    0

    Ich brauche ich den absoluten Pfad zu einem Verzeichnis auf meinem Desktop bekommen haben:os.join schafft den falschen Weg

    home = os.environ["HOMEPATH"] 
    desktop = os.path.join(home,'Desktop') 
    name = 'Test_L1_R1 
    fileName = os.path.abspath(os.path.join(desktop,r'\python35\connect4\pons\data',name)) 
    

    Das Ergebnis

    C:\Users\Alan\Desktop\python35\connect4\pons\data\Test_L1_R1 
    

    sein sollte, aber das tatsächliche Ergebnis ist

    C:\python35\connect4\pons\data\Test_L1_R1 
    

    ich glaube, dass os erkennen, dass ich ein Verzeichnis

    C:\python35 
    

    denn wenn ich den Pfad zu

    fileName = os.path.abspath(os.path.join(desktop,r'\connect4\pons\data',name)) 
    

    dh entfernen Sie den python35 Teil I die Antwort richtig erhalten ändern

    Wie verhindere ich es, das zu tun?

    +0

    Entfernen 'abspath'? Wenn Sie wissen, was Sie tun, brauchen Sie es nicht. –

    Antwort

    1

    Von the docs:

    Wenn eine Komponente ein absoluter Pfad ist, werden alle vorherigen Komponenten weggeschmissen und Verbinden weiter von der absoluten Pfadkomponente.

    Beenden Sie die Verwendung eines absoluten Pfads im zweiten Argument.

    +0

    Ich fürchte, das hat nicht funktioniert. Ich bekomme immer noch: C: \ python35 \ connect4 \ pons \ data \ Test_L1_R1 Hinweis "Desktop" ist C: \ Users \ Alan \ Desktop –

    +0

    Vielleicht habe ich Sie nicht verstanden - Ich sprang auf die Idee, dass ich aufhören sollte, os.path zu verwenden .abspath aber meinst du ändern "r '\ python35 \ connect4 \ pons \ data'". Wie sollte ich es ändern? –

    +0

    Entfernen Sie den anfänglichen Backslash. Das macht es zu einem absoluten Pfad. –

    Verwandte Themen