删除目录中的所有文件

65 投票
13 回答
123213 浏览
提问于 2025-04-15 12:28

我在尝试删除某个文件夹里的所有文件时,遇到了以下错误:

OSError: [错误号 2] 没有这样的文件或目录: '/home/me/test/*'

我运行的代码是:

import os
test = "/home/me/test/*"
os.remove(test)

13 个回答

18

这有点像小技巧,但如果你想保留这个目录,可以使用下面的代码。

import os
import shutil
shutil.rmtree('/home/me/test') 
os.mkdir('/home/me/test')
24

os.remove这个函数不能处理类似Unix风格的模式。如果你在一个类Unix的系统上,你可以这样做:

os.system('rm '+test)

否则你可以:

import glob, os
test = '/path/*'
r = glob.glob(test)
for i in r:
   os.remove(i)
79

os.remove() 这个命令不能用来删除文件夹,而 os.rmdir() 只能删除空的文件夹。并且,Python 不会像某些命令行那样自动展开 "/home/me/test/*" 这个路径。

不过,你可以用 shutil.rmtree() 来删除整个文件夹,包括里面的所有内容。

import shutil
shutil.rmtree('/home/me/test') 

要小心,因为这个命令会删除文件 以及子文件夹

撰写回答