我想删除目录中所有扩展名为.bak
的文件。我如何在Python中做到这一点?
发布于 2010-01-04 00:02:54
import os
filelist = [ f for f in os.listdir(mydir) if f.endswith(".bak") ]
for f in filelist:
os.remove(os.path.join(mydir, f))
仅使用单个循环:
for f in os.listdir(mydir):
if not f.endswith(".bak"):
continue
os.remove(os.path.join(mydir, f))
或通过glob.glob
import glob, os, os.path
filelist = glob.glob(os.path.join(mydir, "*.bak"))
for f in filelist:
os.remove(f)
确保位于正确的目录中,最终使用os.chdir
。
发布于 2010-01-04 00:06:33
使用os.chdir
更改目录。使用glob.glob
生成以“.bak”结尾的文件名列表。列表的元素只是字符串。
然后,您可以使用os.unlink
删除这些文件。(PS。os.unlink
和os.remove
是同一函数的同义词。)
#!/usr/bin/env python
import glob
import os
directory='/path/to/dir'
os.chdir(directory)
files=glob.glob('*.bak')
for filename in files:
os.unlink(filename)
发布于 2016-06-23 22:21:45
在Python3.5中,如果需要检查文件属性或类型,os.scandir
会更好-有关函数返回的对象的属性,请参见os.DirEntry
。
import os
for file in os.scandir(path):
if file.name.endswith(".bak"):
os.unlink(file.path)
这也不需要更改目录,因为每个DirEntry
都已经包含了文件的完整路径。
https://stackoverflow.com/questions/1995373
复制相似问题