无法使用 python 循环删除文件
Impossible to delete files in a loop with 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
的文件?
你想要 os.remove
而不是 shutil.rmtree
。具体来说,前一种方法用于删除 file,而后者旨在删除 directory(及其所有内容)。
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')
你这里有一个例子Deleting all files in a directory with 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)
我想删除文件夹中的文件,但出现错误。
我的代码
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
的文件?
你想要 os.remove
而不是 shutil.rmtree
。具体来说,前一种方法用于删除 file,而后者旨在删除 directory(及其所有内容)。
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')
你这里有一个例子Deleting all files in a directory with 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)