Python 按名称删除所有文件夹
我需要删除文件夹名称以tmp****开头的所有文件夹 文件夹结构示例: C:/tmp文件夹中有tmp323 tmp543 tmp922文件夹。您可能需要使用Python 按名称删除所有文件夹,python,Python,我需要删除文件夹名称以tmp****开头的所有文件夹 文件夹结构示例: C:/tmp文件夹中有tmp323 tmp543 tmp922文件夹。您可能需要使用 import glob import os 在你的程序中。两者都是标准的库程序 glob将帮助您筛选 glob.glob("tmp*") 您需要使用操作系统包的一些例程来确定某个东西是否是目录 一旦你有了要删除的目录列表 for mydir in DirectoriesToDelete: os.system("rm -rf %s
import glob
import os
在你的程序中。两者都是标准的库程序
glob将帮助您筛选
glob.glob("tmp*")
您需要使用操作系统包的一些例程来确定某个东西是否是目录
一旦你有了要删除的目录列表
for mydir in DirectoriesToDelete:
os.system("rm -rf %s" %mydir)
或者类似的东西应该可以达到目的。使用glob、os和shutil:
from os import listdir, rmdir
from os.path import isdir, join
mypath = "C:/tmp"
onlydirs = [ f for f in listdir(mypath) if isdir(join(mypath,f)) and f.startswith("tmp")]
for f in onlydirs: rmdir(join(mypath,f))
import glob, os, shutil
dirs = glob.glob("tmp*/")
for dir in dirs:
shutil.rmtree(dir)
我听说过正则表达式,但idk知道如何在python中正确使用。如果你熟悉正则表达式,你可以使用re和glob。我见过如何使用glob查找文件,但我需要folders你只需要检查str.startswith的startswith tmp行是否正确,但你应该提供代码,让你达到这一点,使用操作系统包来判断某个东西是否是目录可能是一个好主意,而不是仅仅依赖正则表达式约定。mapos.removedirs,glob.globtmp*我真的很喜欢那种功能性的方法@Dekomote非常感谢大家。这种python非常灵活。@tipanverella我怀疑rm-rf是否能在windows机器上工作,因为OP可能不喜欢这个答案,因为它是最不粗糙的,而且不会重新发明轮子。您只需要确保在将其传递给rmtree时实际上正在处理目录,否则就没问题了。是的,您是对的。我更新了代码添加/以仅匹配目录。非常感谢。