Python解析dirs,删除子目录树

时间:2012-11-28 14:57:04

标签: python parsing directory

我有很长的目录列表,有这样的东西

C:\Users\vanstrie\Desktop\ntnu\SCHEMA\2012\07_paper\results\026\onsets

我想解析文件夹001-040(上面显示的026)并删除包含其中所有文件和子文件夹的onsets子目录。我不确定如何使用python 3实现这一点。如果您有解决方案,请告知。非常感谢提前。

尼尔斯

2 个答案:

答案 0 :(得分:2)

我认为这样的事情应该有用......

import glob
import os.path
import shutil
files_dirs = glob.glob(r'C:\Users\vanstrie\Desktop\ntnu\SCHEMA\2012\07_paper\results\*')
for d in files_dirs:
    head,tail = os.path.split(d)
    try:
        if (0 < int(tail) < 41) and (len(tail) == 3):  #don't want to delete `\results\3\onsets` I guess...
           print("about to delete:",d)
           shutil.rmtree(os.path.join(d,'onsets'),ignore_errors=True)
    except ValueError:  #apparently we got a non-integer.  Leave that directory.
        pass

与删除文件时的任何内容一样,我肯定会在第一次打印时打印出要删除的内容 - 只是为了确保脚本实际上按预期工作(并确保不删除你想要的内容)保持)。

答案 1 :(得分:1)

import shutil, os.path

root_folder = "C:\\Users\\vanstrie\\Desktop\\ntnu\\SCHEMA\\2012\\07_paper\\results"
suffix = "onsets"

for i in range(1,41):
  folder = os.path.join( root_folder, "%03d" % i, suffix )
  shutil.rmtree( folder, ignore_errors=True, onerror=None )