从目录中删除特定文件

时间:2015-05-13 19:27:31

标签: file python-3.2

我试图从两个目录中删除所有文件(将被删除,然后重写)。其中一个文件(不要删除)包含文件夹/目录中所有文件的名称(另一个包含目录中的文件数)。

我相信那里(可能?)是2个解决方案:

从未删除的文件中读取每个文件的名称并单独删除它们,直到只剩下最后2个文件,

...或

因为所有其他文件都以.txt结尾,所以我可以使用某种过滤器来删除带有此结尾的文件。

这两个中哪一个最有效,怎么办呢? 任何帮助将不胜感激。

1 个答案:

答案 0 :(得分:1)

无论您使用哪种方法,您都将逐个删除文件。你做的任何优化都将是非常微小的。如果没有对算法进行实际计时,我会说它们都需要大约相同的时间(根据CPU速度,HDD类型等,这会因计算机而异。)因此,我不会就此进行辩论,而是为您提供的方式提供代码:

方法一:

import os

def deleteAll(infilepath):
    with open(infilepath) as infile:
        for line in infile:
            os.remove(line)

方法2:

import os

def deleteAll():
    blacklist = set(['names/of/files/to/be/deleted', 'number/of/files'])
    for fname in (f for f in os.listdir() if f not in blacklist):
        os.remove(fname)