Bootstrap

python高频小工具(持续更新)

无外乎处理各种文件和字符串,然后采用各种算法。

  1. excel文件操作

采用openpyxl库

(1)写数据

import os
from openpyxl import Workbook

path = r"D:\python_practice"
os.chdir(path)  # 修改工作路径

wb = Workbook()    
wb.create_sheet("sheet_0",0)
wb.create_sheet("sheet_1",1)
print(wb.sheetnames)    # 打印Excel表中的所有sheet

# 结果:
# ['sheet_0', 'sheet_1']

#写数据
sheet = wb['sheet_0']  # 获取指定sheet表
sheet['A1'] = "姓名"
sheet['B1'] = "年龄"

data = [['张三','20'], ['李四','21']]
for row in data:
    sheet.append(row)

wb.save('test.xlsx')

(2)读数据

import os
from openpyxl import Workbook
from openpyxl import load_workbook

path = r"D:\python_practice"
os.chdir(path)  # 修改工作路径

wb = load_workbook('test.xlsx')


#读数据
sheet = wb['sheet_0']    # 获取指定sheet表
num_row = sheet.max_row  # 获取sheet的行数 
num_col = sheet.max_column  # 获取sheet的列数
row = []
col = []

for i in sheet.rows:
    row.append(list(i))

for j in sheet.columns:
    col.append(list(j))

print(row)
print(col)
  1. 目录操作

采用递归方式读取指定目录下的文件列表

import os
def get_filelist(path, list):
    list_dir = os.listdir(path)
    for i in list_dir:
        sub_dir = os.path.join(path, i)
        if os.path.isdir(sub_dir):
            get_filelist(sub_dir, list)
        else:
            list.append(sub_dir)
  1. 字符串查找

(1)find

自带函数,如果需要忽略大小写,需要增加lower或upper函数

例如

patten = 'char'
string = '我要查找字符串Char'
index = string.lower().find(patten)  # 如果找到了就返回索引值,否则返回-1

(2)re.match

 re.match尝试从字符串起始位置匹配一个模式,若是不是起始位置匹配成功的话,match()就返回none.字符串

re.match(pattern, string, flags=0)

pattern     匹配正则表达式

string     要匹配的字符串

flags      标志位,用于控制正则表达式匹配方式,例如:是否区分大小写,多行匹配等等。

匹配成功re.match方法返回一个匹配对象,不然返回None

使用group(num)或groups()匹配对象函数来获取匹配表达式。

import re
line = "who are your ? dog?"

matchObj = re.match(r'(.*) are (.*?) .*', line, re.M|re.I)
if matchObj:
    print("matchObj.group():",matchObj.group())
    print("matchObj.group(1):",matchObj.group(1))
    print("matchObj.group(2):",matchObj.group(2))
else:
    print("No match!!")

输出:

matchObj.group(): who are your ? dog?
matchObj.group(1): who
matchObj.group(2): your

;