chmod, ein string und eine Null

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
Gremlin
User
Beiträge: 166
Registriert: Freitag 28. Mai 2010, 23:49

Ich komme mir zwar etwas blöd vor, aber ich kann mir nicht anders helfen als zu fragen.

Ich hab ein Problem mit chmod. Es ist zwar nicht os.chmod, aber eine ähnliche Funktion (paramiko) mit den selben Argumenten.
Nun, die Sache ist die, ich habe einen String:

'0755'

Den an die Funktion zu übergeben, führt zu einem Fehler. Eben weil es ein String ist. Nichts überraschendes.
Aber... wie krieg ich das jetzt gebacken, dass, wenn ich eine Zahl draus mache, die Null da bleibt wo sie ist?

Wenn ich im Quelltext "chmod(pfad, 0755)" angebe, funktioniert es.
Auch mit "chmod(pfad, long(0755))" geht es. (Im ja im Prinzip das selbe...)

Aber nicht mit "chmod(pfad, long('0755'))".
Also, es geht schon, aber das Ergebnis ist nicht dass die Datei diese Rechte hat, sondern 307.

Hilfe?
Benutzeravatar
DaMutz
User
Beiträge: 202
Registriert: Freitag 31. Oktober 2008, 17:25

wenn eine Zahlenfolge mit 0 startet wird es als Octal Zahl (Basis 8) interpretiert (soweit ich weiss gibt es eine Exception mit Python > 3.0). Diese Umwandlung musst du in diesem Fall machen.

Code: Alles auswählen

In [10]: 0755
Out[10]: 493

In [11]: int('0755', 8)
Out[11]: 493
Gremlin
User
Beiträge: 166
Registriert: Freitag 28. Mai 2010, 23:49

Danke. :) (Ich glaube ich sollte mir mal wieder die Doku zu int() zu Gemüte führen...)
Antworten