2012-06-15 34 views
5

Ich versuche, das aktuelle Verzeichnis C:-Y: Ich habe versucht, zu ändern: sagenWie kann ich Laufwerke mit Python os wechseln?

import os 
os.chdir('Y:') 

aber ich erhalte eine Fehlermeldung, dass es nicht das Laufwerk finden kann. Ich suche das Äquivalent des in cmd

cd /d 

Befehls Im Wesentlichen.

+3

Sie erkennen, dass "ändern Sie das aktuelle Verzeichnis von C: zu Y:" bedeutet eigentlich nichts in Windows? Es gibt ein aktuelles Standardlaufwerk und ein separates aktuelles Verzeichnis für jedes Laufwerk. Sie können also das aktuelle Laufwerk in Y: ändern, oder Sie können das aktuelle Laufwerk in Y: ändern und das Verzeichnis auf \ ändern, aber dies sind verschiedene Operationen. (Auf der C-API-Ebene ist es _chdrive (25) vs. _chdir ("Y: \\"), und es ist wahrscheinlich in Python ähnlich, außer dass chdrive wahrscheinlich nicht in os existiert und Sie zu msvcrt oder sogar gehen müssen ctypes die tatsächliche MSVCRT DLL.) – abarnert

+0

Ich erkannte, dass meine Verbindung zu Y: irgendwie gestört worden war, aber sobald ich sortierte, dass heraus chdir ('Y:') gut arbeitete. Danke für die Hilfe auf jeden Fall. – aensm

Antwort

7

Sind Sie sicher, Y: ist wirklich ein gültiger Laufwerksbuchstabe?

Versuchen Sie os.chdir('C:') und stellen Sie sicher, dass das funktioniert. (Es funktioniert für mich.)

+1

Funktioniert auch für mich und kümmert sich nicht um "case" – jdi

+0

Ich habe ein Y: Laufwerk und ich konnte mit "cd/d Y:" – aensm

+1

@aensm zugreifen: Auch wenn 'os.chdir (' Y: ') 'hat funktioniert, es macht nicht dasselbe wie ein" cd/d Y: ". Siehe @ abarnerts Kommentar. – martineau

1

Wenn dies ein zugeordnetes Netzlaufwerk ist, verwenden Sie am besten den UNC-Pfad anstelle des zugeordneten Pfads. Versuchen Sie auch, einen rohen r Zeichenfolgenmodifikator zu verwenden, wenn Sie Pfade unter Windows verwenden, wenn Sie os.path.join nicht verwenden.

+1

Ihre Lösung funktioniert gut. Wenn jemand den UNC-Pfad direkt in open verwenden will, lesen, schreiben. mach einfach die rohe Zeichenfolge wie hier gezeigt. Es funktioniert wie ein Charme. Danke – bicepjai

Verwandte Themen