如何按列表删除文件

如何按列表删除文件

我有一个文本文件,和一个文件夹,文件夹有很多文件,有的我须要,有的不须要,我要的文件都在文本中记着,一个文件一行,如果读取文本文件,把不要的文件删除
写一个for循环就OK了,还要注意的是os的使用:删除文件:
os.remove()

删除空目录:
os.rmdir()

递归删除空目录:
os.removedirs()
好像python没有直接删除有文件的文件夹的。
我也是刚学,所以一起学习了。
retain = open ("filename.txt").readlines ()
for file in os.listdir("dirname"):
    if not file in retain:
        os.remove(file)

差不多就是这个意思,你按具体需要改一下。
用 walk() 函数?
最简单的方法是把需要的文件移动到另一个文件夹,最后把不需要全部删除。

用shell实现的思想:

for i in $(filelist.txt)
do
    mv $i ../backupdir/
done

rm -rf olddir


python 实现:

f=open("filelist.txt")
files=f.readlines()
for file in files:
    os.move(file, "../backupdir")
shutil.rmtree("olddir")

这样就避免了递归、判定目录等操作,实现就简单了。