2016-03-28 4 views
0

Ich schrieb ein einfaches Skript, um ein paar Dateien aus einigen Verzeichnissen zu löschen, ich muss alle .exe-Dateien und alle DLL-Dateien löschen. Ich kann die .exe-Dateien mit os.remove("path_name") löschen, aber wenn ich versuche, die .dll-Dateien zu löschen, bekomme ich "Windows Error: [Error 267] Der Verzeichnisname ist ungültig". Ich füge meinen Code unten hinzu und ich hoffe, dass jemand mir helfen kann, das Problem zu lösen.konnte file.dll nicht mit Python-Skript löschen

for name in dirs: dirPath = RES_PATH + "\\" + name dirsInside = os.listdir(dirPath) LOG_FILE = open(dirPath + "\\log.log", 'w') for doc in dirsInside: if (".exe" in doc): os.remove(dirPath + "\\" + doc) elif (".dll" in doc): shutil.rmtree(os.path.join(dirPath, doc)) if ("ResultFile.txt" in doc): pathToResultFile = dirPath + "\\" + doc fileResult = open(pathToResultFile, 'r') lines = fileResult.readlines() Dank im Voraus.

EDIT

, wenn ich die os.unlink() zu verwenden versuche ich bekommen: „WindowsError: [Error 5] Zugriff verweigert“ für die DLL-Datei (die EXE-Datei gelöscht wird, wie es sollte)

+0

Was bedeutet Fehler # 267? –

+0

"Windows Fehler: [Fehler 267] Der Verzeichnisname ist ungültig" das ist es, was es mir gibt. –

+0

Fügen Sie das zu Ihrer Frage hinzu. Erstellen Sie dann ein minimales Beispiel, das nur zwei 'unlink()' Aufrufe anzeigt. Der erste, der die exe löscht, sollte erfolgreich sein. Die zweite, die DLL löschen, sollte fehlschlagen. –

Antwort

2

Da es .dll ist, die Sie versuchen zu löschen, gibt es eine große Chance, dass die Datei verwendet wird und daher nicht gelöscht werden kann.

Versuchen Sie zu sehen, ob Sie es zuerst manuell löschen können.

+0

danke, aber ich kann es nicht manuell löschen, da es viele Dateien gibt, die ich löschen muss. Gibt es keinen besseren Weg? –

Verwandte Themen