在我的Python3程序中,我需要删除超过X天的文件和文件夹。我知道这里有很多类似的问题,但在我的例子中,我不需要检查这些文件和文件夹的修改时间。相反,我有以下文件夹结构:
/root_folder/<year>/<month>/<day>/<files>
比如像这样的事情:
.
└── 2020
├── 04
│ └── 30
│ ├── file.1
│ └── file.2
└── 05
├── 14
│ ├── file.1
│ └── file.2
├── 19
├── 21
│ └── file.1
└── 22
├── file.1
├── file.2
└── file.3
现在我想要删除所有的文件夹和它们的文件,代表的日期早于X天。我已经创建了一个解决方案,但来自Java似乎对我来说,这不是很Python,或者它可能更容易在Pyhton解决。你PythonMaven可以指导我一点在这里,当然要考虑到“跳跃”在几个月和几年?
2条答案
按热度按时间wydwbb8l1#
我也不是PythonMaven,但我有个简单的建议:
1.找到要保留的最早日期。任何早于此日期的内容都将被删除。假设日期为2020年4月28日
1.从该日期开始,您可以构建字符串"/root_folder/2020/04/28 "
1.列出所有文件,如果它们的路径(字符串形式)小于上一步中的字符串,则可以将它们全部删除
示例:
该片段的来源:https://mkyong.com/python/python-how-to-list-all-files-in-a-directory/
现在,您可以执行以下操作:
注意:这不是最佳选择
1.它一个文件一个文件地删除,但是当你进入的时候,如果你可以只删除这个文件所在的整个文件夹(但是然后文件列表指向已经删除的文件)。
1.你实际上并不关心文件,你可以把逻辑应用到文件夹上,然后递归地删除它们。
更新:在浏览文件夹时执行以下两个步骤:
aiazj4mn2#
Glob你的路径以数组形式得到你的文件路径,然后像这样运行它(如下),祝你好运!