【发布时间】:2021-09-11 17:45:01
【问题描述】:
我有Logs_26052021.tar.xz
描述:26052021--> date: 26, month: 05, year: 2021
并希望使用 python 脚本从位置永久删除此类文件。
它在 Unix 服务器上,版本:Linux localhost 3.10.0-1160.21.1.el7.x86_64
我该怎么办。
提前致谢
【问题讨论】:
我有Logs_26052021.tar.xz
描述:26052021--> date: 26, month: 05, year: 2021
并希望使用 python 脚本从位置永久删除此类文件。
它在 Unix 服务器上,版本:Linux localhost 3.10.0-1160.21.1.el7.x86_64
我该怎么办。
提前致谢
【问题讨论】:
使用适当的方法分离。在 python 3.9.6 上测试
import os
from datetime import datetime
def get_files_from_path(path: str) -> list:
result = []
for subdir, dirs, files in os.walk(path):
for filename in files:
filepath = subdir + os.sep + filename
if filename.startswith('Logs_') and filename.endswith('.tar.xz'):
result.append(filepath)
return result
def get_old_files(filelist: list, max_days=184) -> list:
currentdate = datetime.now()
result = []
for file in filelist:
datestr = file.split('Logs_')[1].split('.tar.xz')[0]
filedate = datetime.strptime(datestr, '%d%m%Y')
tdelta = currentdate - filedate
if tdelta.days > max_days:
result.append(file)
return result
def delete_files(filelist: list):
for file in filelist:
os.remove(file)
logfiles = get_files_from_path('testing')
oldfiles = get_old_files(logfiles)
delete_files(oldfiles)
相关文档:
【讨论】:
找到答案,
find /path/Logs/ -name "*.log.*" -type f -mtime +180
但在执行此命令时,会为 "*.log.*" 获取 SyntaxError: invalid syntax
我应该如何使用 python 执行这个?
【讨论】: