我知道如何删除单个文件,但是我不知道如何实现删除特定类型目录下的所有文件。
假设目录是\myfolder
我想删除所有的.config文件,但不删除其他类型的文件。应该怎么做呢?
非常感谢。
我知道如何删除单个文件,但是我不知道如何实现删除特定类型目录下的所有文件。
假设目录是\myfolder
我想删除所有的.config文件,但不删除其他类型的文件。应该怎么做呢?
非常感谢。
glob
模块:import os
from glob import glob
for f in glob ('myfolder/*.config'):
os.unlink (f)
import os
files = os.listdir("myfolder")
for f in files:
if not os.path.isdir(f) and ".config" in f:
os.remove(f)
该程序列出目录中的文件,并在文件不是目录且文件名中有“.config”时删除它。你需要在与“myfolder”相同的目录中,或者提供完整的目录路径。如果需要递归执行此操作,建议使用“os.walk”函数。
给你:
import os
# Return all files in dir, and all its subdirectories, ending in pattern
def gen_files(dir, pattern):
for dirname, subdirs, files in os.walk(dir):
for f in files:
if f.endswith(pattern):
yield os.path.join(dirname, f)
# Remove all files in the current dir matching *.config
for f in gen_files('.', '.config'):
os.remove(f)
gen_files
可以很容易地重写为接受一个模式元组,因为 str.endswith
接受一个元组。