PermissionError: [Errno 13]

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
Branjo
User
Beiträge: 3
Registriert: Samstag 7. September 2019, 19:27

Hi,

ich habe mich bzgl. des obenstehenden Fehlers schon durch diverse Foren und YouTube Videos geklickt, allerdings noch keine (nachvollziehbare) Lösung gefunden die bei mir funktioniert.

Ich habe einen Pandas Dataframe, den ich als Excel exportieren bzw. speichern will.

Code: Alles auswählen

 
import pandas as pd  
df.to_excel("df.xlsx")  
Wenn ich das versuche bekomme ich folgende Fehlermeldung:

Code: Alles auswählen

PermissionError: [Errno 13] Permission denied: 'df.xlsx'
Ich nutze ein Jupyter Notebook, Anaconda3, Python 3.7 auf Windows 10.

Für Hilfe wäre ich dankbar.
__deets__
User
Beiträge: 14539
Registriert: Mittwoch 14. Oktober 2015, 14:29

Das ist ein relativer Pfad. Der zeigt augenscheinlich wohin, wo man nicht schreiben darf. Benutz einen absoluten Pfad, an einer Stelle wo du schreiben darfst.
Benutzeravatar
ThomasL
User
Beiträge: 1366
Registriert: Montag 14. Mai 2018, 14:44
Wohnort: Kreis Unna NRW

oder die Datei "df.xlsx" existiert schon und ist schreibgeschützt oder z.B. in Excel geöffnet ....
Ich bin Pazifist und greife niemanden an, auch nicht mit Worten.
Für alle meine Code Beispiele gilt: "There is always a better way."
https://projecteuler.net/profile/Brotherluii.png
Branjo
User
Beiträge: 3
Registriert: Samstag 7. September 2019, 19:27

Hi,

Danke für die Antworten.

Ich habe das working directory am Anfang des Scrips festgelegt.

Code: Alles auswählen

import os
os.chdir('C:/Users/XXX/OneDrive/Desktop')
Von dort aus habe ich auch meine Daten eingelesen, was problemlos funktioniert. Dort möchte ich meine Datei auch speichern. Ich habe aber nicht die Berechtigung dort zu speichern. Wie man die erlangt, habe ich noch nicht rausgefunden. Ich muss irgendwie

Code: Alles auswählen

 cmd.exe 
in

Code: Alles auswählen

 C:\Windows\system32 
als Administrator ausführen und dann zu meinem Projektpfad. Ich habe aber keine Ahnung wie man das macht.
oder die Datei "df.xlsx" existiert schon und ist schreibgeschützt oder z.B. in Excel geöffnet ....
Das kann man ausschließen.
Branjo
User
Beiträge: 3
Registriert: Samstag 7. September 2019, 19:27

Hi,

danke für die Antworten.

Ich habe das working directory am Anfang des Scrips festgelegt.

Code: Alles auswählen

import os
os.chdir('C:/Users/XXX/OneDrive/Desktop')
Von dort aus habe ich auch meine Daten eingelesen, was problemlos funktioniert. Dort möchte ich meine Datei auch speichern. Ich habe aber nicht die Berechtigung dort zu speichern. Wie man die erlangt, habe ich noch nicht rausgefunden. Ich muss irgendwie

Code: Alles auswählen

 cmd.exe 
in

Code: Alles auswählen

 C:\Windows\system32 
als Administrator ausführen und dann zu meinem Projektpfad. Ich habe aber keine Ahnung wie man das macht.
oder die Datei "df.xlsx" existiert schon und ist schreibgeschützt oder z.B. in Excel geöffnet ....
Das kann man ausschließen.
Benutzeravatar
/me
User
Beiträge: 3555
Registriert: Donnerstag 25. Juni 2009, 14:40
Wohnort: Bonn

Branjo hat geschrieben: Sonntag 8. September 2019, 10:32 Ich habe das working directory am Anfang des Scrips festgelegt.

Code: Alles auswählen

import os
os.chdir('C:/Users/XXX/OneDrive/Desktop')
Globale Zustände zu ändern ist Mist. Überleg mal was passiert wenn importierte Module so etwas auch machen. Gib den Pfad lieber direkt beim Öffnen der Datei an.
Branjo hat geschrieben: Sonntag 8. September 2019, 10:32Ich habe aber nicht die Berechtigung dort zu speichern.
Das ist dann eine Konfigurationsfrage in deinem System. Python kann und darf nichts anderes als der Benutzer unter dem es ausgeführt wird.
Antworten