【发布时间】:2017-04-21 01:44:46
【问题描述】:
我有一个包含一些软件版本的树,我需要保留最后 3 个版本。
我有这样的树文件夹:
版本:
文件夹:
'10.7.0.290'、'10.7.0.289'、'10.7.0.281'、'10.7.0.278'、'10.7.0.275'
'10.6.7.282'、'10.6.7.277'、'10.6.7.274'、'10.6.7.270'
我想保留每个版本的 last 3 文件夹,例如在这种情况下,我想保留 '10.7.0.yyy' 和 ' 的 last 3 10.6.7.xxx 版本:
'10.7.0.290'、'10.7.0.289'、'10.7.0.281'
'10.6.7.282'、'10.6.7.277'、'10.6.7.274'
并删除:
'10.7.0.278', '10.7.0.275'
'10.6.7.270'
但我的脚本只保留最后 3 个,而不是每个版本:
脚本:
import os
import re
import shutil
versions = []
folders = []
a = os.listdir('.')
a.sort(reverse=True)
sorted(a)
for fn in a:
folders.append(fn)
if os.path.isdir(fn):
version = (re.match('^([0-9]+\.[0-9]+\.[0-9]+).*', fn)).group(1)
if (version) not in versions:
versions.append(version)
result = []
for version in versions:
temp = []
for folder in folders:
if folder.startswith(version):
temp.append(folder)
result.append(temp)
print result
for version in result:
for i in range(max(len(version) - 3, 0)):
print version[i]
# shutil.rmtree(version[i])
结果
10.7.0.290 #this files are deleted
10.7.0.289 #this files are deleted
10.6.7.282 #this files are deleted
【问题讨论】:
标签: python python-2.7 directory