python去除rpm仓库中同名低版本的包

编程思路
1 遍历目标路径的rpm包并保存特性包列表;

2 利用python模块rpmUtils提取RPM包的特征信息:包名  版本号 架构

3 遍历特性列表中存在重复包名的rpm, 将低版本的rpm包完整路径信息保存在删除列表中;

4 遍历目标路径,根据删除列表删除低版本的rpm包

函数接口解读

rpmUtils.miscutils.splitFilename  —— https://programtalk.com/python-examples/rpmUtils.miscutils.splitFilename/

rpmUtils.miscutils.compareEVR  —— https://programtalk.com/python-examples/rpmUtils.miscutils.compareEVR/

其他参考实例见:https://programtalk.com/python-examples/rpmUtils.miscutils

备注:

1 列表A、B、C的连接方式:A+B+C

2 判断文件是否存在并可以删除 os.path.exists(path)

使用os.access()方法判断文件是否可进行读写操作。

语法:

os.access(path, mode)

path为文件路径,mode为操作模式,有这么几种:

  • os.F_OK: 检查文件是否存在;
  • os.R_OK: 检查文件是否可读;
  • os.W_OK: 检查文件是否可以写入;
  • os.X_OK: 检查文件是否可以执行

原文地址:https://www.cnblogs.com/noxy/p/10886537.html

时间: 2024-10-27 08:54:36

python去除rpm仓库中同名低版本的包的相关文章

Maven传递依赖的时候,同名包不同版本的包均会下载,但是编译的时候,只会加载一个高版本的。

描述,在一个Maven项目中,同时依赖了spring-tomcat-weaver  和  struts-core 包,但是spring-tomcat-weaver 需要commons-digester-1.2 struts-core 需要commons-digester-1.8 Pom文件如下: <dependencies> <dependency> <!-- 需要commons-digester-1.2包 --> <groupId>org.springfr

android中导入低版本project可能会遇到的编译问题(转自: [email&#160;protected])

使用高版本的SDK后再导入以前用低版本的project时,会遇到一些兼容性的问题. (1)Unable to resolve target 'android-5' 因为本机中现在使用的是2.2的SDK,API的版本是8:而导入的工程使用的是2.0开发的,其API版本是5. 需要将default.properties中的target=android-5改为target=android-8就好了. 但要注意,也要同步将AndroidManifest.xml中的<uses-sdk android:mi

maven项目或者SpringBoot项目启动时报错在本地仓库中找不到jar包的解决办法

经常遇到项目检出来后是导入开发工具eclipse中pom文件出错问题,项目启动时遇到了一些列的jar包找不到的问题,所以换个开发平台到IDEA以为会好些,结果同样的问题还是会出现的,为了找到具体的解决办法,针对以下我遇到的此类问题做总结,希望能帮助到一部分人,所以帮我此次的解决办法记录下来,帮助大家也方面自己. 一.问题现象 二.解决办法 (1)从报错截图中大概知道是因为在本地的maven仓库中找不到“mchange-commons-java-0.2.9.jar ”这个jar包 所以就到本地的m

python去除读取文件中多余的空行

今天在写登录程序练习的时候,黑名单文件中多了几行空行.导致运行的时候报错:IndexError: list index out of range 代码 brackData = open(brackDataPath,"r") for line in brackData: temp = line.strip().split(',') brackDict[temp[0]] = int(temp[1]) brackData.close() 错误 Traceback (most recent c

Python 2.7.x 和 3.x 版本的重要区别

许多Python初学者都会问:我应该学习哪个版本的Python.对于这个问题,我的回答通常是“先选择一个最适合你的Python教程,教程中使用哪个版本的Python,你就用那个版本.等学得差不多了,再来研究不同版本之间的差别”. 但如果想要用Python开发一个新项目,那么该如何选择Python版本呢?我可以负责任的说,大部分Python库都同时支持Python 2.7.x和3.x版本的,所以不论选择哪个版本都是可以的.但为了在使用Python时避开某些版本中一些常见的陷阱,或需要移植某个Pyt

Maven - 实例-2-使用本地仓库中的依赖包

Maven引入构建包的流程 执行mvn compile命令编译源代码,如果编译过程中需要用到其他的包, maven将会在pom.xml文件中查找是否引入该依赖包的坐标. 示例: <dependencies> <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>4.10</version> </depen

pyenv简介——Debian/Ubuntu中管理多版本Python

pyenv简介——Debian/Ubuntu中管理多版本Python MAY 21ST, 2016 12:00 AM | COMMENTS pyenv是管理Python版本的工具,它支持在多个Python版本间切换. 一.安装pyenv 1 git clone https://github.com/yyuu/pyenv.git ~/.pyenv 将PYENV_ROOT和pyenv init加入bash的~/.bashrc(或zsh的~/.zshrc) 1 2 3 echo 'export PAT

Error【0007】:zabbix中因为curl版本过低而无法发送邮件

1. 错误背景 在centos6.5上,源码部署zabbix最新版本zabbix-3.2.14.部署后之后,在配置邮件发送报警时出错 2. 错误提示 3. 原因分析 从网上检索的结果是说,系统中的curl版本过低,不支持smtp协议.如下图 4. 解决方案 此时需要更新curl 通过wget https://curl.haxx.se/download/curl-7.61.0.tar.gz下载最新版本的curl源码 解压配置编译安装 tar -zxvf curl-7.61.0.tar.gz -C

高版本api在低版本中的兼容

直接上例子,看如何避免crash. eg:根据给出路径,获取此路径所在分区的总空间大小. 文档说明:获取文件系统用量情况,在API level 9及其以上的系统,可直接调用File对象的相关方法,以下需自行计算 API level 9及其以上,调用 File.getTotalSpace() 即可, 但是在API level 8 以下系统File对象并不存在此方法 //如下 /** * Returns the total size in bytes of the partition contain