IC 脚本之python

OS 模块

        os模块就是python对操作系统操作接口的封装。os模块提供了多数操作系统的功能接口函数,主要用于一些日志文件的保存以及解析。

1. os.path.absppath(path) 用于获取当前文件位置绝对路径; os.path.realpath(path) 用于返回文件位置的相对路径。2. os.path.split(path) 将指定文件的路径分解为(文件夹路径, 文件名),返回的数据类型是元组类型。3.  os.path.join(path1, path2, ...) :将入参的path进行组合,若其中有绝对路径,则之前的path将被删除4.  os.path.exists(path) :判断文件或者文件夹是否存在,返回True 或 False。【文件或文件夹的名字不区分大小写】5.  os.path.isfile('路径') :判断入参路径是否为文件,返回值为布尔值;是文件返回True,不是文件返回False6.  os.listdir(path) :列举path目录下的所有文件。返回的是列表类型。7.  os.system("cmd") : 执行cmd 所表达的指令。遍历目录的函数
os.walk(path,topdown=True, oneerror=None)
它返回值是一个generator,每次遍历的队形都是返回的一个三元组(root,dirs,files), root
是当前遍历的目录路径,dirs代表root路径下的所有子目录list,files表示root路径下所有文件list。

RE正则表达式

        re模块主要功能是通过正则表达式来匹配处理字符串的, re跟vim正则匹配知识点类似,只不过元字符以及次数控制符不在需要 ”\"来进行控制。

1 compile 函数pattern=re.compile(r"\d+")2 match 函数从头匹配一个符合正则控制的字符串, 从起始位置开始匹配,匹配成功则返回一个对象。str=“Hello world"r =re.match(r"Hello",str)   匹配成功str=“   Hello world"r =re.match(r"Hello",str)   匹配失败3 search 函数 *******它比re.match更灵活,可在任意位置匹配设置的正则模式,会将第一个匹配的对象作为结果。date="2023year10month12day"r=re.search(r"(\d+)\D*(\d+)\D*(\d+)\D*",date)最后可以通过r.group(1) re.group(2) re.group(3) 访问第1,2,3个匹配对象,re.groups()获取的是一个由匹配对象组成的元组。4. findall函数它会对整个字符串进行扫描,将所有匹配的对象全部记录到groups()usage: re.findall(pattern ,str)5. split 函数 *根据正则pattern 作为分隔符来分割字符串。date="2023year10month12day"r=re.split(r"\d+",date)print(r)  # 返回值是个数组6. sub函数替换字符串中的一些正则匹配项date="2023year10month12day"r=re.sub(r'\d+','**',date) 此时便将date中的数字替换成 ** 

excel 文件访问

openpyxl是另一个强大的库,专门用于读写.xlsx文件。 参考https://www.cnblogs.com/hls-code/p/15674197.html

from openpyxl import load_workbook
from openpyxl.styles import * 
# 加载Excel文件
wb = load_workbook('example.xlsx')
# 选择工作表
sheet = wb.active
# 读取特定单元格的数据
cell_value = sheet['A1'].value
cell_value = shett.cell(1,1).value
print(cell_value)其中有几个常用的参数控制 
1 #可以通过append函数在指定sheet表格后增加一行sheet.append([1,2,3])2 #字体控制 ***ws.cell(5,3).value='哈哈哈'ws.cell(5,3).font = Font(name='仿宋',size=12,color=Color(index=0),b=True,i=True)# size   sz  字体大小# b bold  是否粗体# i italic  是否斜体# name family  字体样式3 # 填充色控制 ****** fill属性PatternFill(patternType='solid',fgColor=Color(), bgColor=Color())# fgColor   前景色# bgColor   后景色# 参数可选项patternType = {'darkDown', 'darkUp', 'lightDown', 'darkGrid', 'lightVertical', 'solid', 'gray0625', 'darkHorizontal', 'lightGrid', 'lightTrellis', 'mediumGray', 'gray125', 'darkGray', 'lightGray', 'lightUp', 'lightHorizontal', 'darkTrellis', 'darkVertical'}ws.cell(3,3).fill =                     ws.cell(3,3).fill = PatternFill()4 # 对齐控制 ****  align 属性Alignment(horizontal='fill',vertical='center')# 参数可选项horizontal = {'fill', 'distributed', 'centerContinuous', 'right','justify', 'center', 'left', 'general'}vertical = {'distributed', 'justify', 'center', 'bottom', 'top'}ws.cell(3,3).alignment= Alignment()

 对于较旧版本的.xls文件,xlrd和xlwt库提供了读取和写入的功能。虽然它们不支持.xlsx格式的文件,但对于需要处理遗留数据的情况非常有用

import xlrd
# 打开文件
workbook = xlrd.open_workbook('example.xls')
# 选择工作表
sheet = workbook.sheet_by_index(0)
# 读取特定单元格的内容
cell_value = sheet.cell_value(0, 0)
print(cell_value)

在linux 通常使用library Offic来访问.xls,.xlsx, 有时候需要将它们转换为.csv文件,这时可以通过library office自带的命令将其转为特定格式的文件。

libreoffice --headless --convert-to target_type --outdir  directory source_excel
target_type:需要转化文件的目的类型,比如csv
directory:  转换后的文件存放目录;
source_excel:需要转换的exce文件  

基础用法

字符串格式化: 
1. "apple is %s"%("delicious")
2.  format 格式化 a="delicious""apple is {:^10s} " .format(a)  或者 f"apple is {a:}"格式化参数:[[fill]align][sign]["#"]["0"][width][grouping_option]["."precision][type]align:对齐方式(<左对齐,>右对齐,=填充后等于符号指定的宽度,^居中对齐)。***sign:符号选项(+表示正数带加号,-表示负数带减号,空格表示正数前留空格)。#:用于显示二进制、八进制、十六进制的前缀,以及浮点数的小数点和小数部分(如果适用)。***0:用于指定宽度内的前导零。width:字段的最小宽度。 ***grouping_option:千位分隔符的选项(_或,)。precision:对于浮点数和字符串,表示小数点后的位数或字符串的最大长度。type:转换类型(如b表示二进制,d表示十进制,o表示八进制,x表示十六进制,f表示浮点数等)。{:0<10.2fd}它的含义是将变量格式化为左对齐的8位整数两位小数的十进制数,当长度不够使用0填充。字符串函数
str.replace(oldval, newval, count) 将字符串中的oldval用newval替换,最大可以替换为count次。
str.split(sep,str) 使用sep分隔符对str进行分割,与正则分割相比它的功能简单得多。
text = "Hello"
aligned_text = text.ljust(10, '-')   # 输出: Hello-----
aligned_text = text.rjust(10, '-')   # 输出: -----Hello
aligned_text = text.center(10, '-')  # 输出: ---Hello---

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/471374.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

MySQL —— MySQL逻辑架构与查询过程

文章目录 MySQL逻辑架构整体分为三层连接层服务层查询缓存解析器优化器执行器 存储引擎层系统文件层 MySQL 查询过程查询过程框图 博客1 博客2 MySQL逻辑架构整体分为三层 最上层为客户端层&#xff0c;并非MySQL所独有&#xff0c;诸如&#xff1a;连接管理、授权认证、权限校…

【大数据学习 | HBASE高级】storeFile文件的合并

Compaction 操作分成下面两种&#xff1a; Minor Compaction&#xff1a;是选取一些小的、相邻的StoreFile将他们合并成一个更大的StoreFile&#xff0c;对于删除、过期、多余版本的数据不进行清除。 Major Compaction&#xff1a;是指将所有的StoreFile合并成一个StoreFile&am…

微服务day08

Elasticsearch 需要安装elasticsearch和Kibana&#xff0c;应为Kibana中有一套控制台可以方便的进行操作。 安装elasticsearch 使用docker命令安装&#xff1a; docker run -d \ --name es \-e "ES_JAVA_OPTS-Xms512m -Xmx512m" \ //设置他的运行内存空间&#x…

操作系统lab4-页面置换算法的模拟

操作系统lab4-页面置换算法的模拟 文章目录 操作系统lab4-页面置换算法的模拟实验目的实验内容实验分析 代码测试用例运行结果 实验目的 1、掌握请求分页存储管理的常用理论&#xff1a;页面置换算法。 2、理解请求分页中的按需调页机制。 实验内容 独立地用高级语言编写和…

react-redux useSelector钩子 学习样例 + 详细解析

&#xff08;一&#xff09;react-redux useSelector 学习样例 详细解析 创建一个新项目&#xff0c;将依赖正确安装&#xff1a; npx create-react-app my-redux-app cd my-redux-app# 安装 Redux 和 React-Redux npm install redux react-redux# 安装 ajv npm install ajv#…

IP数据云 识别和分析tor、proxy等各类型代理

在网络上使用代理&#xff08;tor、proxy、relay等&#xff09;进行访问的目的是为了规避网络的限制、隐藏真实身份或进行其他的不正当行为。 对代理进行识别和分析可以防止恶意攻击、监控和防御僵尸网络和提高防火墙效率等&#xff0c;同时也可以对用户行为进行分析&#xff…

《Django 5 By Example》阅读笔记:p76-p104

《Django 5 By Example》学习第4天&#xff0c;p76-p104总结&#xff0c;总计29页。 一、技术总结 1.环境变量管理 这里作者使用的是&#xff1a;python-decouple&#xff0c;本人在实际项目中使用的是python-dotenv&#xff0c;这里只是简单的使用&#xff0c;感觉两者差不…

【IC每日一题:IC常用模块--RR/handshake/gray2bin】

IC每日一题&#xff1a;IC常用模块--RR/handshake/gray2bin 1 RR仲裁器2 异步握手信号处理3 格雷码和二进制相互转换 1 RR仲裁器 应用&#xff1a;在多个FIFO请求pop时存在仲裁策略&#xff0c;还有比如多master申请总线控制权的仲裁等这些应用场合&#xff1b;假如当前是最高…

【Visual Studio】使用VS调试(Debug)

确保在Debug模式下而不是Release 打断点(break point) 直接在有代码的行前单击&#xff0c;会出现红色的点(再次单击会取消)&#xff1b;或者光标停留在某行&#xff0c;按F9 这意味着程序当执行到这一行时会终止 在打完断点后点击”本地Windows调试器“或者按F5 往下翻会…

基于RK3568J多网口电力可信物联网关解决方案

前言 随着工业物联网的普及和功能越来越强大&#xff0c;边缘计算网关应运而生。 边缘计算有效降低了云端服务器的负载、大大降低了带宽的占用&#xff0c;同时也为本地化的区域自治提供了便利条件。 边缘计算网关&#xff0c;完美地发挥了“边”与“端” 结合优势&#xff0c…

⾃动化运维利器Ansible-基础

Ansible基础 一、工作原理二、快速入门2.1 测试所有资产的网络连通性2.2 发布文件到被管理节点(资产) 三、资产(被管理节点)3.1 静态资产3.1.1 自定义资产3.1.2 自定义资产的使用3.1.3 资产选择器 四、Ansible Ad-Hoc 命令4.1 模块类型4.1.1 command & shell 模块4.1.2 cop…

SpringBoot实战(三十一)集成iText5,实现RSA签署PDF

目录 一、什么是电子签章?1.1 定义1.2 电子签章的工作原理1.3 电子签章的优势二、准备工作:证书生成、印章生成2.1 证书生成2.2 印章生成三、Java代码实现 RSA 签署 PDF3.1 坐标签署3.2 关键字签署3.3 日期签署3.4 骑缝章签署3.5 文本域签署一、什么是电子签章? 1.1 定义 电…

vue面试题7|[2024-11-14]

问题1&#xff1a;什么是渐进式框架? vue.js router vuex element ...插件 vue.js 渐0 router 渐1 vuex 渐2 vue.js只是一个核心库&#xff0c;比如我再添加一个router或者vuex&#xff0c;不断让项目壮大&#xff0c;就是渐进式框…

【力扣热题100】[Java版] 刷题笔记-169. 多数元素

题目&#xff1a;169. 多数元素 给定一个大小为 n 的数组 nums &#xff0c;返回其中的多数元素。多数元素是指在数组中出现次数 大于 ⌊ n/2 ⌋ 的元素。 你可以假设数组是非空的&#xff0c;并且给定的数组总是存在多数元素。 解题思路 该题目的核心点是&#xff1a;元素出现…

Dolby TrueHD和Dolby Digital Plus (E-AC-3)编码介绍

文章目录 1. Dolby TrueHD特点总结 2. Dolby Digital Plus (E-AC-3)特点总结 Dolby TrueHD 与 Dolby Digital Plus (E-AC-3) 的对比 Dolby TrueHD和Dolby Digital Plus (E-AC-3) 是两种高级的杜比音频编码格式&#xff0c;常用于蓝光影碟、流媒体、影院等高品质音频传输场景。它…

第三十一天|贪心算法| 56. 合并区间,738.单调递增的数字 , 968.监控二叉树

目录 56. 合并区间 方法1&#xff1a;fff 看方法2&#xff1a;fff优化版 方法3&#xff1a; 738.单调递增的数字 968.监控二叉树&#xff08;贪心二叉树&#xff09; 56. 合并区间 判断重叠区间问题&#xff0c;与452和435是一个套路 方法1&#xff1a;fff 看方法2&am…

火车车厢重排问题,C++详解

目录 实验题目 解题思路 1先看缓冲队列队头是否符合要求 2看队头元素是否符合要求 完整代码 运行结果 实验题目 火车车厢重排问题 实验说明&#xff1a;转轨站示意图如下&#xff1a; 火车车厢重排过程如下&#xff1a; 火车车厢重排算法伪代码如下&#xff1a; 解题思路…

算法学习第一弹——C++基础

早上好啊&#xff0c;大佬们。来看看咱们这回学点啥&#xff0c;在前不久刚出完C语言写的PTA中L1的题目&#xff0c;想必大家都不过瘾&#xff0c;感觉那些题都不过如此&#xff0c;所以&#xff0c;为了我们能更好的去处理更难的题目&#xff0c;小白兔决定奋发图强&#xff0…

LabVIEW大数据处理

在物联网、工业4.0和科学实验中&#xff0c;大数据处理需求逐年上升。LabVIEW作为一款图形化编程语言&#xff0c;凭借其强大的数据采集和分析能力&#xff0c;广泛应用于实时数据处理和控制系统中。然而&#xff0c;在面对大数据处理时&#xff0c;LabVIEW也存在一些注意事项。…

AUTOSAR_EXP_ARAComAPI的7章笔记(3)

☞返回总目录 相关总结&#xff1a;AutoSar AP简单多绑定总结 7.3 多绑定 如在 5.4.3 小节中简要讨论的&#xff0c;某个代理类 / 骨架类的不同实例之间的技术传输是不同的&#xff0c;多绑定描述了这种情况的解决方案。多种技术原因都可能导致这种情况出现&#xff1a; 代…