2015-04-24 1 views
0

Я хочу удалить файлы в папке, и у меня есть ошибка.Невозможно удалить файлы в цикле с помощью python

Мой код

for f in glob ('sub/*.sub'): 
    subprocess.call(["php", "AES.class.php" , f]) 
    shutil.rmtree(f) 
    #deplacement des fichier 
    for d in glob ('*.ass'): 
      shutil.move(d, 'sync') 

Это дает мне следующую ошибку:

Traceback (most recent call last): 
    File "start.py", line 26, in <module> 
    shutil.rmtree(f) 
    File "/usr/lib64/python2.7/shutil.py", line 239, in rmtree 
    onerror(os.listdir, path, sys.exc_info()) 
    File "/usr/lib64/python2.7/shutil.py", line 237, in rmtree 
    names = os.listdir(path) 
OSError: [Errno 20] Not a directory: 'sub/Ep01.sub' 

Как удалить файлы с расширением .sub в папке?

ответ

3

Вы хотите os.remove, а не shutil.rmtree. В частности, первый способ заключается в удалении файла, тогда как последний предназначен для удаления каталога (наряду со всем его содержимым).

for f in glob ('sub/*.sub'): 
    subprocess.call(["php", "AES.class.php" , f]) 
    os.remove(f) 
    #deplacement des fichier 
    for d in glob ('*.ass'): 
      shutil.move(d, 'sync') 
Смежные вопросы