Не могу удалить файлы - получаю FileNotFoundError - PullRequest
0 голосов
/ 27 января 2020

Я пытаюсь написать программу, которая будет удалять файлы в указанной папке c.

Когда я запускаю следующий код, я получаю сообщение об ошибке:

FileNotFoundError: [Errno 2] No such file or directory: '/Users/joshuamorse/Documents/Programming/python/deletefiles/1.txt

Мой код:

import os, sys
for filename in os.listdir('/Users/joshuamorse/Documents/programming/python/deletefiles/f2d/'):
    print(filename)
    x = os.path.realpath(filename) #not required but included so program would give more meaningful error
    os.unlink(x)

, когда строка 5 закомментирована, программа работает нормально и перечисляет все файлы, содержащиеся в папке.

Я не понимаю, почему ошибка обрезает последнюю папку (f2d) в пути к каталогу. Кроме того, если я пропущу ввод последней папки в пути, например, f2, появится следующая ошибка: FileNotFoundError: [Errno 2] No such file or directory: '/Users/joshuamorse/Documents/programming/python/deletefiles/f2/.

Почему последняя папка включается в путь только тогда, когда она введена неправильно? Как бы мне go исправить это, чтобы пройти правильный путь?

Решение

Предоставлено @ ekhumoro

os.listdir() не вернуть путь, только имена файлов в указанной папке.

Исправленный код

import os
dirpath = '/Users/joshuamorse/Documents/programming/python/deletefiles/f2d/'
for filename in os.listdir(dirpath):
    x = os.path.join(dirpath, filename)
    os.unlink(x)
...