我有一些軟件版本的樹,我需要保留最後的3個版本。刪除最近的3個版本的文件夾 - Python
我有樹的文件夾是這樣的:
版本:
文件夾:
'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'
我想保持每個版本的最後3個文件夾,例如在這種情況下,我想保持'10 .7.0.yyy「和'10 .6.7.xxx版」的最後3的:
'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
我有一個錯誤,如果我有一個文件夾與10.6.7.274.22 trown異常和中止...如果我有其他文件的文件夾與錯誤的名稱不xx.yy.zz.aa中止與erro波紋管 ValueError:需要多個值 –