【问题标题】:python how to delete all files whose name is a date in a folderpython如何删除文件夹中名称为日期的所有文件
【发布时间】:2022-12-14 16:56:22
【问题描述】:

我有一个包含两类文件夹命名的文件夹

第一类文件夹是命名为日期的文件夹 第二类文件夹是具有固定名称“master”的文件夹。

请参考下面的截图。

如何删除所有“日期”文件夹并通过 python 保留“主”文件夹?

在我使用下面的代码删除所有文件夹之前,但现在我想保留主文件夹。

try:
    shutil.rmtree('../../test/subtest/')
except OSError as e:
    print ("Error: %s - %s." % (e.filename, e.strerror))

【问题讨论】:

  • 你可能想使用 python 的 glob,或者只使用更简单的 shell 命令:rm 2022*-*

标签: python


【解决方案1】:

使用 os 包列出文件夹

试试这个代码:

import os
import shutil

parent_dir = '../../test/subtest/'
my_list = os.listdir(parent_dir)
for sub_dir in my_list:
    if sub_dir != 'master':
        print("deleting folder: " + sub_dir)
        try:
          shutil.rmtree(parent_dir + sub_dir)
        except OSError as e:
          print ("Error: %s - %s." % (e.filename, e.strerror))

我只添加包os,它允许获取父目录中的子目录列表(参见指令os.listdir(parent_dir))。

删除不检查子文件夹名称是否包含日期,但仅检查其名称是否不同于'master',但是,如果我理解了您的问题,我认为这就是您所需要的。

【讨论】:

  • @cheriemilk 发布的代码有用还是有一些错误?我在我的工作站上试过了,它似乎可以工作。
  • 是的。它按预期工作。感谢您的帮助。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-01-03
  • 1970-01-01
  • 2017-07-21
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多