Nun möchte ich mit Python versuchen auf 'C:' zu schreiben. Bevor ich loslege, möchte ich aber erstmal prüfen, ob der Pfad schreibbar ist. Als Pfad verwende ich 'C:' und als Dateiname 'test.txt'. Ich habe die Erfahrung gemacht, dass es gerade unter Windows manchmal erforderlich ist, Pfadangaben immer mit abschließendem Backslash zu verwenden. Bei reinen Laufwerksbuchstaben wie 'C:' kann es sonst Probleme geben.
Lange Rede, kurzer Sinn: Wieso verhält sich das folgende Script so wie es sich verhält?
Code: Alles auswählen
import os
path = "C:"
file = "test.txt"
# enforce trailing slash on the path
if len(path) > 0 and not path.endswith(os.path.sep):
path += os.path.sep
# check if path is writeable
if os.access(path, os.W_OK):
print "'%s' is writeable" % path
write = path+file
print "try to write '%s'" % write
f = open(write, "w")
f.writeline("test")
else:
print "'%s' doesn't exist or not writeable" % path
Python Interpreter hat geschrieben:'C:\' is writeable
try to write 'C:\test.txt'
Traceback (most recent call last):
File "bug_os.access.py", line 12, in ?
f = open(write, "w")
IOError: [Errno 13] Permission denied: 'C:\\test.txt'