2012-03-30 17 views
1

ich diesen Code haben:kann nicht die Erlaubnis auf der Festplatte zu speichern bekommen und .xml mit Python-Datei

def display(self): 
    print self.doc.toprettyxml(indent=" ") 
    strigName ='/Users/my_user/Desktop/python/' + str(datetime.datetime.now()) + '.xml' 
    print strigName 
    with open(strigName, "ws") as f: 
     f.write(self.doc.toprettyxml(indent=" ")) 

, die auf einen Pfad auf den Namen mit einem Zeitstempel speichert und XML-Datei. Das Problem ist, dass ich es nur im selben Verzeichnis wie das Skript speichern kann. Wenn ich versuche, es in dem oben gezeigten Pfad zu speichern, gibt es mir "IOError: [Errno 13] Berechtigung verweigert:" selbst das Ausführen des Python-Skripts mit Sudo, und ja, mein Benutzer ist Admin. Was ist los mit dir?

+0

haben Sie die volle Kontrolle über dieses Verzeichnis? Dies ist wahrscheinlich ein Fall von Zugriffsrechten/Berechtigungen oder Sie haben entweder dieselbe Datei, in die Sie schreiben, die bereits geöffnet ist oder von einem anderen Dienst verwendet wird! – test

+0

Überprüfen Sie Ihren Pfad? Welches Betriebssystem verwendest du, wenn du Sudo verwendest, nehme ich an, dass es Linux ist? normalerweise gibt es keinen Ordner/Benutzer –

+0

auch welcher Modus ist "ws" Ich habe es nicht früher gesehen? –

Antwort

1

Doppelpunkte sind in OS X-Dateinamen nicht erlaubt. str(datetime.datetime.now()) ist '2012-03-30 14:20:46'

Sie könnten die Doppelpunkte mit Bindestrichen in der Zeichenfolge ersetzen, bevor es verwendet wird, oder so etwas wie time.strftime("%Y-%m-%d-%H-%M-%S", time.localtime()) statt datetime.datetime.now() verwenden.

+0

Colons * sind in Mac OS X-Dateinamen in der POSIX-Ebene erlaubt. 'touch ~/colon: colon': – kindall

+0

@kindall Was zeigt sich im Finder? –

+0

Im Finder wird es natürlich als '/' angezeigt, was genauso merkwürdig ist, da Finder keine Doppelpunkt-Dateinamen mehr zu mögen scheint. :-) – kindall

Verwandte Themen