import os
import shutil
class OpencvUninstallManager(object):
def __init__(self):
self.uninstall_dir = '/usr/local'
self.store_dir = os.path.join(os.path.expanduser('~'), 'opencv_uninstall')
def get_all_subdirs(self, dir):
'''
获取一个文件夹下所有文件夹绝对路径,包括子目录
:param dir:
:return:
'''
dir_result = []
for root, dirs, files in os.walk(dir):
for dir in dirs:
dir_result.append(os.path.join(root, dir))
return dir_result
def get_all_files_subdir2(self, dir, filter_list=[]):
'''
获取文件夹下所有的文件,默认是所有类型文件,如果只想获取txt,filter_list=[".txt"],一定要加点
:param dir:
:param filter_list:
:return:
'''
file_list = []
if len(filter_list) == 0:
for root, dirs, files in os.walk(dir):
for file in files:
file_list.append(os.path.join(root, file))
return file_list
else:
for root, dirs, files in os.walk(dir):
for file in files:
suffix = os.path.splitext(file)[-1]
if suffix in filter_list:
file_list.append(os.path.join(root, file))
return file_list
def start_uninstall(self):
if not os.path.exists(self.store_dir):
os.makedirs(self.store_dir)
print('start uninstall directories')
dirs = self.get_all_subdirs(self.uninstall_dir)
for dir in dirs:
if dir.lower().find('opencv') > 0:
new_dir = dir.replace(self.uninstall_dir, self.store_dir)
if not os.path.exists(new_dir):
shutil.move(dir, new_dir)
print('start uninstall opencv files')
files = self.get_all_files_subdir2(self.uninstall_dir)
for file in files:
if file.lower().find('opencv') > 0:
new_file = file.replace(self.uninstall_dir, self.store_dir)
if not os.path.exists(new_file):
temp_dir = os.path.dirname(new_file)
if not os.path.exists(temp_dir):
os.makedirs(temp_dir)
shutil.move(file, new_file)
def start_resume(self):
print('start resume all files')
files = self.get_all_files_subdir2(self.store_dir)
for file in files:
new_file = file.replace(self.store_dir, self.uninstall_dir)
if not os.path.exists(new_file):
temp_dir = os.path.dirname(new_file)
if not os.path.exists(temp_dir):
os.makedirs(temp_dir)
shutil.copyfile(file, new_file)
if __name__ == '__main__':
mm = OpencvUninstallManager()
mm.start_uninstall()
opencv-uninstaller.zip
版权申诉
![star](https://csdnimg.cn/release/downloadcmsfe/public/img/star.98a08eaa.png)
![avatar](https://profile-avatar.csdnimg.cn/0e35228262bb4364b07f212ce2091b81_fl1623863129.jpg!1)
FL1623863129
- 粉丝: 1w+
- 资源: 1万+
最新资源
- 基于Qt使用C++实现图书管理系统源码+数据库(95分以上).zip
- 基于GUI+MYSQL+JAVA票务管理系统文档介绍+源码+数据库(高分大作业).zip
- 优先编码器除法电微分运算电路 全加器函数发生电路等电路经典Multisim仿真实验源文件合集(25个).zip
- 2331308JS课堂案例.zip
- STM32H750VBT6单片机最小系统开发板AD设计硬件(原理图+PCB+3D封装库)工程文件.zip
- 基于74LS161+ 74LS192芯片实现倒计时定时器Multisim仿真源文件,Multisim10以上版本可打开运行
- 科大讯飞语音引擎 jar包 demo,科大讯飞语音合成引擎3.0,支持4.0系统以上,文字转语音输出.zip
- Java架构面试笔试专题资料及经验(含答案)SpringBoot面试Linux面试专题及答案 合集.zip
- 头歌c语言实验答案tion-model-for-ne开发笔记
- docker配置使用-model-for-networK开发demo
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
![feedback](https://img-home.csdnimg.cn/images/20220527035711.png)
![feedback](https://img-home.csdnimg.cn/images/20220527035711.png)
![feedback-tip](https://img-home.csdnimg.cn/images/20220527035111.png)