Frage

Ich versuche, einen Ordner zu erstellen, und erstellen Sie eine Datei in es.

Wenn ich erstellen Sie diesen Ordner (über Python), es erstellt einen Ordner, der gibt mir keine Berechtigungen überhaupt und nur-Lesen-Modus.

Wenn ich versuche, die Datei zu erzeugen, bekomme ich eine IOError.

Error:  <type 'exceptions.IOError'>

Ich habe versucht, die Schaffung (und-Suche) für eine Beschreibung von allen anderen Modi (außer 0770).

Kann mir jemand Licht?Was sind die anderen-Modus-codes?

War es hilfreich?

Lösung

Nachdem Sie den Ordner erstellen Sie die Berechtigungen mit os.chmod festlegen

Der Mod ist in der Basis 8 geschrieben, wenn Sie es konvertieren, um zu binäre es wäre

000 111 111 000
    rwx rwx rwx

Der erste rwx für Eigentümer ist, ist die zweite für die Gruppe und die dritte ist für Welt

r = lesen, w = schreiben, x = ausführen

Die Berechtigungen, die Sie am häufigsten zu sehen sind
7 Lesen / Schreiben / Ausführen - Sie müssen ausführen für Verzeichnisse der Inhalt sehen
6 Lese- / Schreib
4 Read-only

Wenn Sie os.chmod verwenden es am sinnvollsten Oktalschreibweise zu verwenden so

os.chmod('myfile',0o666)  # read/write by everyone
os.chmod('myfile',0o644)  # read/write by me, readable for everone else

Denken Sie daran, ich sagte, Sie in der Regel Verzeichnisse sein wollen „ausführbar“, so dass Sie die Inhalte sehen können.

os.chmod('mydir',0o777)  # read/write by everyone
os.chmod('mydir',0o755)  # read/write by me, readable for everone else

Hinweis: Die Syntax von 0o777 ist für Python 2.6 und 3+. ansonsten für die 2-Serie ist es 0777. 2.6 akzeptiert entweder Syntax so diejenige, die Sie auf wählen, wird davon abhängen, ob Sie vorwärts oder rückwärts kompatibel sein.

Andere Tipps

Sie haben wahrscheinlich eine funky umask bekommen. Versuchen Sie os.umask(0002) vor Ihrem Verzeichnis zu machen.

Das Python-Handbuch sagt:

os.mkdir(path[, mode])

Erstellen Sie ein Verzeichnis namens path mit dem numerischen Modus mode.Der Standard-Modus ist 0777 (Oktalzahl).Auf einigen Systemen Modus ignoriert.Wo es verwendet wird, wird die aktuelle umask-Wert ist zunächst ausgeblendet.Verfügbarkeit:Unix, Windows.

Haben Sie eine Modus - welcher Modus haben, den Sie angeben.Haben Sie betrachten die Angabe eines Modus explizit?Und was ist das Programm umask-Wert"

Da Ihr auf Windows, könnte dies ein crapshoot sein. Stellen Sie sicher, dass es keine verrückten spezielle Berechtigungen für das übergeordnete Verzeichnis sind oder mit den Richtlinieneinstellungen, die die Berechtigungen alle Verzeichnisse erstellt von Ihrem Konto definiert erhalten. Ich bezweifle, dass dies ein Python-Problem ist, wie ich nicht in der Lage, das Problem unter Windows mit einem relativ Vanille Vista installiert neu zu erstellen.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top