0

我想删除文件夹中的文件,但出现错误。

我的代码

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的文件?

4

2 回答 2

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')
于 2015-04-24T18:47:20.073 回答
2

你有一个例子在这里用Python删除目录中的所有文件

import os

filelist = [ f for f in os.listdir(".") if f.endswith(".bak") ]
for f in filelist:
    subprocess.call(["php", "AES.class.php" , f])
    os.remove(f)
于 2015-04-24T18:49:16.660 回答