用django+mysql+pycharm搭建网站(3)
该篇文章总结了毕设背景下系统网站使用的相关知识技术内容。
一、字符串模糊匹配
字符串模糊匹配是大致(而不是精确地)查找与给定模糊匹配的字符串的过程,也被称为近似字符串匹配。
python中通过比较短文本相似性来实现字符串模糊匹配的方法有Levenshtein、difflib和fuzzywuzzy。
Levenshtein(第三方插件):需要输入为字符串,匹配时是整体匹配,数组匹配时需要用join把数组元素连接为字符串。
difflib(Python自带):不一定为字符串,数组也可以匹配,但数组匹配时只有单个元素完全匹配才计入相似。
fuzzywuzzy(第三方插件):Fuzzy(模糊)字符串匹配是作为一个简单易用的包使用
下面是上述三种方法的大致用法示例,更加多元的具体用法可继续查询学习。
# 运用代码
import Levenshtein
import difflib
from fuzzywuzzy import fuzz
s1 = "你们公司在哪里"
s2 = "你家的公司地址在哪里"
print(Levenshtein.distance(s1, s2)) # 0~∞
print(Levenshtein.ratio(s1, s2)) # 0~1
print(difflib.SequenceMatcher(None, s1, s2).ratio()) # 0~1
print(fuzz.ratio(s1, s2)) # 0~100
# 输出结果
4
0.7058823529411764
0.7058823529411765
71
二、分割函数split()
在python中split()函数作用为根据某个字符,对字符串进行分割,然后以列表形式进行输出。(split译为分裂) 1、split()默认分割:默认是根据空格字符对字符串进行分割。 2、split(’\n’)单分割:根据所写的单字符对字符串进行分割。 3、split(’ |!|?|.’, a)多分割:需要用到re模块,代码示例如下:
import re
ans_list = re.split(r'[,#\n]', str1)
4、split(’ ', 2):只分割前2个空格,生成1个列表。若字符串内有3个或更多空格,分割完成后若还存在空格,则不会进行分割,只会放在一个字符串里面。代码示例如下:
a = "E 239113 hello world"
c = a.split(" ", 2)
print(c)
# 输出结果:['E', '239113', 'hello world']
三、txt文件的常用读写操作
1、打开文件
# 文件的两种打开方式
# 方法一
f = open("data.txt","r") #设置文件对象
f.close() #关闭文件
# 方法二:为了方便,避免忘记close掉这个文件对象,可以用下面这种方式替代
with open('data.txt',"r") as f: #设置文件对象
str = f.read() #可以是随便对文件的操作
2、读取文件
python常用的读取文件函数有三种read()、readline()、readlines() 。
read() 为一次性读取文本中全部的内容,以字符串的形式返回结果。
readline() 为只读取文本第一行的内容,以字符串的形式返回结果。readline会读到换行符。
readlines() 为读取文本所有内容,并且以数列(list)的格式返回结果,一般配合”for in“使用。readlines也会读到换行符,为去掉列表中每一个元素的换行符可用 “line = line.strip('\n')“ 方法去除。
# read()函数
f = open("data.txt","r")
str = f.read() # 将txt文件的所有内容读入到字符串str中
f.close()
# readline()函数
f = open("data.txt","r")
line = f.readline()
line = line[:-1]
while line: #直到读取完文件
line = f.readline() #读取一行文件,包括换行符
line = line[:-1] #去掉换行符,也可以不去
f.close()
# readlines()函数1
with open("data.txt", "r") as f:
for line in f.readlines(): #readlines会读到换行符
line = line.strip('\n') #去掉列表中每一个元素的换行符
print(line)
# readlines()函数2
f = open("data.txt","r")
data = f.readlines() #直接将文件中按行读到list里,效果与方法2一样
f.close()
# 其它方法1
data = []
for line in open("data.txt","r"): # 设置文件对象并读取每一行文件
data.append(line) # 将每一行文件加入到list中
# 其它方法2--另将float数据(数组)文件内容读入到数组中的方法
import numpy as np
data = np.loadtxt("data.txt") #将文件中数据加载到data数组里
3、写入文件
# 简单的将字符串写入txt中
with open('data.txt','w') as f: # 设置文件对象
f.write(str) # 将字符串写入文件中
# 将列表写入文件中
# 单层列表
data = ['a','b','c']
with open("data.txt","w") as f:
f.writelines(data)
# 双层列表
# 第一种方法,每一项用空格隔开,一个列表是一行写入文件
data =[ ['a','b','c'],['a','b','c'],['a','b','c']]
with open("data.txt","w") as f:
for i in data: #对于双层列表中的数据
i = str(i).strip('[').strip(']').replace(',','').replace('\'','')+'\n' #将其中每一个列表规范化成字符串
f.write(i) #写入文件
# 第二种方法,直接将每一项都写入文件
data =[ ['a','b','c'],['a','b','c'],['a','b','c']]
with open("data.txt","w") as f:
for i in data: #对于双层列表中的数据
f.writelines(i) #写入文件
# 将数组写入文件中
import numpy as np
# 第一种方法
np.savetxt("data.txt",data) #将数组中数据写入到data.txt文件
# 第二种方法
np.save("data.txt",data) #将数组中数据写入到data.txt文件
注意:引申学习其它文件形式的读写操作,如excel表格文件等。
PS:毕设期间参考学习资料:
1、FuzzyWuzzy:Python中的模糊字符串匹配,地址:
2、【Python】 字符串相似性度量,用difflib还是Levenshtein,地址:
3、python--str.split()函数分割,地址:
4、python:txt文件常用读写操作,地址:
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 全程不用写代码,我用AI程序员写了一个飞机大战
· DeepSeek 开源周回顾「GitHub 热点速览」
· 记一次.NET内存居高不下排查解决与启示
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· .NET10 - 预览版1新功能体验(一)