permission denied bei allem außer bei os.listdir

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
cheers
User
Beiträge: 18
Registriert: Samstag 31. Juli 2021, 08:53
Wohnort: Deutschland

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?
:arrow: Viele Grüße und allen eine gute Zeit! :)
rogerb
User
Beiträge: 878
Registriert: Dienstag 26. November 2019, 23:24

@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.
Zuletzt geändert von rogerb am Sonntag 15. August 2021, 10:18, insgesamt 1-mal geändert.
Benutzeravatar
__blackjack__
User
Beiträge: 13998
Registriert: Samstag 2. Juni 2018, 10:21
Wohnort: 127.0.0.1
Kontaktdaten:

@cheers: Dateimodi mit "+" machen bei Textdateien so gut wie nie Sinn. Und auch bei Binärdateien braucht man das nur sehr selten.
“The best book on programming for the layman is »Alice in Wonderland«; but that's because it's the best book on anything for the layman.” — Alan J. Perlis
nezzcarth
User
Beiträge: 1749
Registriert: Samstag 16. April 2011, 12:47

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.)
cheers
User
Beiträge: 18
Registriert: Samstag 31. Juli 2021, 08:53
Wohnort: Deutschland

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 :)
:arrow: Viele Grüße und allen eine gute Zeit! :)
Antworten