我有一长串目录,有这样的东西
C:\Users\vanstrie\Desktop\ntnu\SCHEMA\2012\07_paper\results\026\onsets
我想解析文件夹 001-040(如上所示的 026)并删除包含所有文件和子文件夹的 onsets 子目录。我不确定如何使用 python 3 实现这一点。如果您有解决方案,请告知。提前谢谢了。
尼尔斯
我认为这样的事情应该可以工作......
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
与删除文件时的任何内容一样,我肯定会打印第一次通过时将删除的内容——只是为了确保脚本实际上按预期工作(并确保您不会删除要保留的内容) .
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 )