删除文件夹中的一些文件 - Python

时间:2017-09-12 17:37:20

标签: python-3.x

我想浏览一个文件夹并删除除了其中一些文件之外的所有文件。以下文件提供了要删除的相应文件名:remfile。但是最后一行不会删除它,它会在remfile(s)地址中添加额外的反斜杠。

如何重写代码以将C:/tmp定义为root?

import os
root='C:/mmp'
for root,dirs,files in os.walk(root):
    for dirname in dirs:
        for filename in files:
            if filename=='keepfile': continue
            remfile=os.path.join(root,dirname,filename)
            os.remove(remfile)

1 个答案:

答案 0 :(得分:0)

您应该使用原始字符串和反斜杠,例如root=r'C:\Test'或双反斜杠root='C:\\Test'

现在试试这个:

import os
root=r'C:\Test'
for root, dirs,files in os.walk(root):
    for filename in files:
        if filename=='keepfile': continue
        remfile=os.path.join(root,filename)
        print('Removing ' + remfile)
        os.remove(remfile)

对于我的文件夹层次结构,我得到了:

Removing C:\Test\root_remove1.txt
Removing C:\Test\root_remove2.txt
Removing C:\Test\Folder 1\Folder1_remove1.txt
Removing C:\Test\Folder 1\Folder1_remove2.txt
Removing C:\Test\Folder 2\Folder2_remove1.txt
Removing C:\Test\Folder 2\Folder2_remove2.txt

尝试在代码中添加print语句,以验证循环内发生的情况。这有时非常有用。