Python解析dirs,删除子目录树

标签 python parsing directory

我有一个很长的目录列表,类似于这样

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

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

关于Python解析dirs,删除子目录树,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13607981/

相关文章:

ios - 我的应用程序的公共(public)文件夹

php - 如何删除非空目录?

python - 如何使用 argparse 指定最小或最大浮点值

python - 在并行程序中播种随机数生成器

java - 我怎样才能在Android中解析这个JSON?

parsing - 什么是 ANTLR 中的树解析器,我是否被迫编写一个?

Python正则表达式将字符串中的非ascii字符转换为最接近的ascii等价物

php - 在 heroku 上的 Flask 应用程序中运行 PHP 脚本

c++ - 在 C++ 中解析来自标准输入的字段

git - 如何重命名 GitHub 网站上的目录/文件夹?