Я пытаюсь написать программу, которая будет удалять файлы в указанной папке 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)