Gram wokół niektórych skryptów Pythona i wpadłem w problem ze skryptem, który piszę. To ma znaleźć wszystkie pliki w folderze, który spełnia kryteria, a następnie usunąć go. Jednak znajduje pliki, ale w momencie usuwania pliku mówi, że nie znaleziono pliku.

To jest mój kod:

import os
for filename in os.listdir('C:\\New folder\\'):
    if filename.endswith(".rdp"):
        os.unlink(filename)

I to jest błąd, który dostaję po uruchomieniu:

FileNotFoundError: [Winerror 2] System nie może znaleźć określonego pliku:

Czy ktoś może w tym pomóc?

1
user10660670 28 luty 2019, 02:00

2 odpowiedzi

Najlepsza odpowiedź

os.unlink bierze ścieżkę do pliku, nie tylko jego filename. Spróbuj w oczekiwaniu na swojego filename za pomocą dirname. Lubię to

import os

dirname = 'C:\\New folder\\'

for filename in os.listdir(dirname):
    if filename.endswith(".rdp"):

        # Add your "dirname" to the file path
        os.unlink(dirname + filename)
1
khelwood 5 marzec 2019, 15:05

Możesz alternatywnie korzystać z OS.walk, jednak może iść głębiej niż chcesz:

import os

for root, sub, file in os.walk("/media/"):
    if file.endswith(".rdp"):
        os.unlink(f'{root}/{file}')
1
Ari 27 luty 2019, 23:20