python正则表达式
import re
m=re.match("(\w+)","aaa,bbb,ccc")
if m:
print(m.group(1))
python遍历目录
import os
files=os.listdir("../abc")
for file in files:
if os.path.isfile("../abc/"+file):
... # 文件处理
else:
... # 目录处理
python读取xml
采用sax流式读取
import xml.sax
# 从xml.sax.ContentHandler派生类,用来处理xml回调
class XmlHandler(xml.sax.ContentHandler):
# 构造函数
def __init__(self,fname):
self.l=[]
# 元素开始事件处理
def startElement(self,tag,attributes):
# 利用list将tag保存为堆栈
self.l.append(tag)
# 元素结束事件处理
def endElement(self,tag):
assert(tag==self.l[-1])
self.l.pop(-1)
# 内容事件处理
def characters(self, content):
# 那么栈顶元素就是当前content所属节点
if self.l[-1]==...:
...
elif ...
parser=xml.sax.make_parser()
handler=XmlHandler()
parser.setContentHandler(handler)
parser.parse("aaa.xml")
python读取xlsx
安装openpyxl
pip install openpyxl
from openpyxl import load_workbook
from openpyxl.formula import Tokenizer
wb=load_workbook("aaa.xlsx",read_only=True)
ws=wb.active
# 可以指定从第二行、第二列开始读取
for row in ws.iter_rows(min_row=2,min_col=2,values_only=False):
for cell in row:
# 单元格为数字,且不为空
if cell.data_type=='n' and cell.value!=None:
...
# 单元格为字符串
elif cell.data_type=='s':
...
# 单元格公式
elif cell.data_type=='f':
# openpyxl不支持计算公式,但可以取出每个token自行处理
tok=Tokenizer(cell.value)
print("\n".join("%12s%11s%9s" % (t.value, t.type, t.subtype) for t in tok.items))
参考:
https://openpyxl.readthedocs.io/en/stable/index.html
https://*.com/questions/41688677/python-3-4-unable-to-read-value-from-excel-formula