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文件。
from openpyxl import load_workbook
# 加载Excel文件
wb = load_workbook('example.xlsx')
# 选择工作表
sheet = wb.active
# 读取特定单元格的数据
cell_value = sheet['A1'].value
print(cell_value)
对于较旧版本的.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---