Seite 1 von 1

permission denied bei allem außer bei os.listdir

Verfasst: Sonntag 15. August 2021, 09:45
von cheers
Moin,
ich versuche zuhause einen ordner auf einer externen usb Platte einzulesen, da sind Filme drin, ich will ein wenig damit rumspielen was man so machen kann, aber bei jeder art von methode, außer bei os.listdir bekomme ich ein permission denied. Ich hab schon stundenlang gegoogelt und verschiedenes getestet, als admin starten, rechte im ordner anpassen, script im ordner ausführen, spyder und anaconda neu installieren, Firewall deaktivieren, Dateischutz seitens Defender deaktivieren ich bekomme es immer wieder.
es ist dabei auch egal wie ich einlese, ob r+ oder w+.
System ist ein W10, Windows Virenscanner, sonst keiner der im Hintergrund läuft.
File "H:\ordnervergleich.py", line 4, in <module>
alle_filme = open(r"H:\Privat\Filme")

PermissionError: [Errno 13] Permission denied: 'H:\\Privat\\Filme'
Ich hab schon gelesen dass windows 10 hier wohl gerne probleme macht, frage: weiß jemand wie ich das behoben bekomme, so dass ich praktisch mit "jeder" einlesemethode arbeiten kann? gibts dafür so ein "grundrezept"? ja in linux kann man mit chmod arbeiten, aber bei windows?

Re: permission denied bei allem außer bei os.listdir

Verfasst: Sonntag 15. August 2021, 10:07
von rogerb
@cheers,

du bekommst den Fehler weil du versuchst einen Ordner zu öffnen. Mit open() öffnet man Dateien aber keine Ordner.

So kannst du die Dateien im Ordner auflisten:

Code: Alles auswählen

from pathlib import Path

video_archive = Path(r"H:\Privat\Filme")

for dir_item in video_archive.iterdir():
    if dir_item.is_file():
        print(dir_item)
Die Fehlermeldung ist hier auch etwas irreführend, da es ja offensichtlich nicht um eine Berechtigung geht.

Re: permission denied bei allem außer bei os.listdir

Verfasst: Sonntag 15. August 2021, 10:17
von __blackjack__
@cheers: Dateimodi mit "+" machen bei Textdateien so gut wie nie Sinn. Und auch bei Binärdateien braucht man das nur sehr selten.

Re: permission denied bei allem außer bei os.listdir

Verfasst: Sonntag 15. August 2021, 10:37
von nezzcarth
Es gibt einige Programmiersprachen, die über eine Funktion namens "opendir" oder ähnlich verfügen und die auch gängiger Weise verwendet wird (z. B. Perl). In Python greift man aber normalerweise einfach direkt auf Ordner zu, bevorzugt unter Verwendung von "pathlib"; "öffnen" muss man sie nicht (kann man zwar auch, aber das habe ich bisher eher selten gesehen, zumal man wie gesagt heute eher pathlib verwendet; das ist in jedem Fall eher nichts für den Einstieg.)

Re: permission denied bei allem außer bei os.listdir

Verfasst: Sonntag 15. August 2021, 13:10
von cheers
ahhh... okay das erklärt das natürlich, vielen Dank. ich setz mich heut abend nochmal dran und dann schau ich mal. Ist immer schwierig wenn es tausend wege nach rom gibt, dass ist zwar schön, aber für sich den richtigen zu finden ist immer so eine sache :D danke für die hilfe :)