PermissionError: [Errno 13] in Python


83

Ich fange gerade an, etwas Python zu lernen und habe ein Problem wie unten angegeben:

a_file = open('E:\Python Win7-64-AMD 3.3\Test', encoding='utf-8')

Traceback (most recent call last):
  File "<pyshell#9>", line 1, in <module>
    a_file = open('E:\Python Win7-64-AMD 3.3\Test', encoding='utf-8')
PermissionError: [Errno 13] Permission denied: 'E:\\Python Win7-64-AMD 3.3\\Test\

Scheint ein Dateiberechtigungsfehler zu sein. Wenn jemand etwas Licht ausstrahlen kann, wäre er sehr dankbar.

HINWEIS: Ich bin nicht sicher, wie Python- und Windows-Dateien funktionieren, aber ich bin als Administrator bei Windows angemeldet und der Ordner verfügt über Administratorrechte.

Ich habe versucht, die .exeEigenschaften so zu ändern , dass sie als Administrator ausgeführt werden.


7
Ist Testeine Datei oder ein Ordner?
— Joachim Isaksson

1
@ JoachimIsaksson Es ist definitiv ein Ordner, wie wir am Ende der Fehlerzeile sehen können. Machen Sie das eine Antwort.
— Oleh Prypin

Test ist ein Ordner. Das folgende Dokument lautet: Ich kann ein Textdokument mit der folgenden Syntax öffnen: a_file = open ('E: \ Python Win7-64-AMD 3.3 \ Test \ a.txt', encoding = 'utf-8' ) Wenn ich diese Syntax sowie a_file = open verwende ('E: \ Python Win7-64-AMD 3.3 \ Test', encoding = 'utf-8'), erhalte ich den gleichen Fehler.
— BenniMcBeno

By the way, erinnern rohe Strings für Windows - Pfadnamen zu verwenden, oder Sie werden schlecht Namen mit beginnen passieren sollen , wenn ein Unterordner gebissen noder boder anderer Brief, den Teil einer Escape - Sequenz sein kann ...
— Tim Pietzcker

ok, also die Datei war auf einem Flash-Laufwerk und der Flash-Treiber war FAT32 und meine HD ist NTFS, also gab es Formatkonflikte> <lokal funktioniert es gut, danke Jungs
— BenniMcBeno

Antworten:


65

Wenn Sie dies tun;

a_file = open('E:\Python Win7-64-AMD 3.3\Test', encoding='utf-8')

... Sie versuchen, ein Verzeichnis als Datei zu öffnen , was möglicherweise (und auf den meisten Nicht-UNIX-Dateisystemen) fehlschlägt.

Ihr anderes Beispiel;

a_file = open('E:\Python Win7-64-AMD 3.3\Test\a.txt', encoding='utf-8')

sollte gut funktionieren, wenn Sie nur die Erlaubnis dazu haben a.txt. Möglicherweise möchten Sie jedoch eine rohe rZeichenfolge (mit Präfix) verwenden, um sicherzustellen, dass Ihr Pfad keine solchen Escape-Zeichen enthält \n, die in Sonderzeichen übersetzt werden.

a_file = open(r'E:\Python Win7-64-AMD 3.3\Test\a.txt', encoding='utf-8')

ein ok Roger Glück für mich, ich bin fast immer unter Linux, außer jetzt lol> <, also wen schlägst du vor, ich mache es. Übrigens Test ist ein Ordner / Verzeichnis
— BenniMcBeno

2
@bennyboy Hängt davon ab, was Sie erreichen möchten, indem Sie das Verzeichnis anstelle der Datei öffnen ...?
— Joachim Isaksson

15

Für mich habe ich in eine Datei geschrieben, die in Excel geöffnet ist.


Ich muss in eine geöffnete Excel-Datei schreiben (da sie ein Makro enthält, das ein Python-Skript ausführt). Wie gehen Sie darum herum?
— Sieger

Meine Pandas sind beim Öffnen fehlgeschlagen (Dateiname, "rb"), das Schließen von Excel hat das Problem behoben, aber warum?
— Niels Tolstrup

0

Dieses Problem trat auf, als ich versehentlich versuchte, mein Python-Modul über die Eingabeaufforderung C:\Windows\System32auszuführen, während sich mein Arbeitsverzeichnis anstelle des üblichen Verzeichnisses befand, in dem ich mein Python-Modul ausführte

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.