无外乎处理各种文件和字符串,然后采用各种算法。
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)
目录操作
采用递归方式读取指定目录下的文件列表
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)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