2017-07-19 1 views
1

Ich versuche, Dateien mit einer Erweiterung als .pcp aus einem Verzeichnis zu entfernen. Wenn ich das Verzeichnis Liste erhalte ich:Fehler "nicht normales Objekt", der versucht, Dateien aus einem Verzeichnis zu entfernen

>>> for i in os.listdir(folder): 
...  if i.endswith(".pcp"): 
...   print(i) 
... 
1.pcp 
2.pcp 
3.pcp 
4.pcp 
5.pcp 
6.pcp 
7.pcp 
8.pcp 
9.pcp 
10.pcp 

Wenn, wenn ich laufen:

>>> for i in os.listdir(folder): 
...  if i.endswith(".pcp"): 
...   os.remove(os.path.join(dir, i)) 
... 

ich den Fehler:

Traceback (most recent call last): 
    File "<stdin>", line 3, in <module> 
    File "C:\Program Files (x86)\IronPython 2.7\Lib\ntpath.py", line 96, in join 
TypeError: len() of unsized object 

Bitte können Sie darauf hinweisen, was Fehler, den ich bin tun? Hilfe sehr geschätzt. Vielen Dank.

Antwort

1

es sieht aus wie Sie einen Tippfehler gemacht, wenn

Aufruf
os.remove(os.path.join(dir, i)) 

Sie erhalten nicht einen Nameerror, weil dir eine eingebaute Funktion ist.


Stattdessen können Sie unten die Linie nennen:

os.remove(os.path.join(folder, i)) 

Sie können auch das glob Modul verwenden:

import glob 
files = glob.glob(os.path.join(folder,'*.pcp')) 
for f in files: 
    os.remove(f) 
+0

Thank you! ... habe ich die Funktion/Methode "dir" übersehen. Ich habe deine Glob-Lösung ausprobiert und funktioniert. Danke noch einmal. – alc

Verwandte Themen