2016-04-07 20 views
2

Zunächst einmal bin ich sehr neu in Python und Programmierung im Allgemeinen.Python auf Windows: IOError: [Errno 2] Keine solche Datei oder Verzeichnis

Derzeit versuche ich ein Skript zu erstellen, das alle Dateien mit zufälligen Namen, Erweiterungen und Inhalten im Ordner entsprechend den Zeilen aus der Blacklist entfernt (Suche muss im Inhalt der Dateien erfolgen). Hier

ist ein Code:

import os 

black_list = [line for line in open("C:/path/to/blacklist.txt")] 

for filename in os.listdir("C:/path/to/files/"): 
    content = open(filename).read() 
    if any(line in content for line in black_list): 
     os.remove(filename) 

Ich erhalte diese Fehlermeldung:

IOError: [Errno 2] No such file or directory: 'first_file_from_the_folder'

Könnten Sie mir bitte helfen?

Vielen Dank im Voraus!

Antwort

4

os.listdir gibt Dateinamen, nicht vollständigen Pfad zurück.

PATH = "C:/path/to/files/" 
for filename in os.listdir(PATH): 
    content = open(os.path.join(PATH, filename)).read() 

Hier wird os.path.join verwendet, um den Pfad und den Dateinamen zusammenzuführen.

+0

Vielen Dank für die Hilfe! –

1

Wenn Sie die Datei entfernen möchten, sollte sie den gesamten Pfad der Datei übergeben.

import os 

black_list = [line for line in open("C:/path/to/blacklist.txt")] 
path = "C:/path/to/files/" 
for filename in os.listdir(path): 
    content = open(path+ filename).read() 
    if any(line in content for line in black_list): 
     os.remove(path + filename) 
+0

Danke für die Hilfe! –