‘壹’ 如何用python来进行查询和替换一个文本字符串
1、说明
可以使用find或者index来查询字符串,可以使用replace函数来替换字符串。
2、示例
1)查询
>>> 'abcdefg'.find('cde')
结果为2
'abcdefg'.find('acde')
结果为-1
'abcdefg'.index('cde')
结果为2
2)替换
'abcdefg'.replace('abc','cde')
结果为'cdedefg'
3、函数说明
1)find(...)
S.find(sub[, start[, end]]) -> int
返回S中找到substring sub的最低索引,使得sub包含在S [start:end]中。 可选的 参数start和end解释为切片表示法。
失败时返回-1。
2)index(...)
S.index(sub[, start[, end]]) -> int
与find函数类似,但是当未找到子字符串时引发ValueError。
3)replace(...)
S.replace(old, new[, count]) -> str
返回S的所有出现的子串的副本旧换新。 如果可选参数计数为给定,只有第一个计数出现被替换。
‘贰’ Python中检索字符串的方法有哪些呢
你还可以用更灵活的 regular 正则式
search()和match(),用起来更灵活
import re
str = "Welcome to my world. I have 12 apples."
if re.search(r"world", str).group() != "" :
print("match! ")
str = "abcABC"
if re.match(r"[a-zA-Z]+", str):
print("match! ", re.search(r"[A-Z]+", str).group())
else:
print("ummatch! ")
‘叁’ python 文本文件中查找指定的字符串
编写一个程序,能在当前目录以及当前目录的所有子目录下查找文件名包含指定字符串的文件,并打印出绝对路径。
import os
class SearchFile(object):
def __init__(self,path='.'):
self._path=path
self.abspath=os.path.abspath(self._path) # 默认当前目录
def findfile(self,keyword,root):
filelist=[]
for root,dirs,files in os.walk(root):
for name in files:
fitfile=filelist.append(os.path.join(root, name))
#print(fitfile)
print(os.path.join(root, name))
#print(filelist)
print('...........................................')
for i in filelist:
if os.path.isfile(i):
#print(i)
if keyword in os.path.split(i)[1]:
print('yes!',i) # 绝对路径
#else:
#print('......no keyword!')
def __call__(self):
while True:
workpath=input('Do you want to work under the current folder? Y/N:')
if(workpath == ''):
break
if workpath=='y' or workpath=='Y':
root=self.abspath # 把当前工作目录作为工作目录
print('当前工作目录:',root)
dirlist=os.listdir() # 列出工作目录下的文件和目录
print(dirlist)
else:
root=input('please enter the working directory:')
print('当前工作目录:',root)
keyword=input('the keyword you want to find:')
if(keyword==''):
break
self.findfile(keyword,root) # 查找带指定字符的文件
if __name__ == '__main__':
search = SearchFile()
search()
‘肆’ python sqlite3 如何模糊查询变量
刚刚研究了一下,我的代码是在python 3.2.3下的。不知你的版本是多少,姑且参考吧。 以下代码根据python的手册里的例子改编。import sqlite3 con = sqlite3.connect(":memory:") cur = con.cursor() cur.execute("create table people (name, age)") who = "Yeltsin"age = 72# This is the qmark style: cur.execute("insert into people values (?, ?)", (who, age)) # Query using like clause cur.execute("select * from people where name like ?",('%Yel%',))。
‘伍’ python字符串操作
字符串操作在各个计算机语言中都是比较常见的操作,下面我们对python的字符串操作做下简单介绍。
一、索引操作
字符串是由一些连续的字符组成,支持索引操作,索引位置从0开始,比如以下代码会输出’P‘字符:
二、截取子串
字符串也可以像列表那样给定起始与终止索引生成一个新的子串,比如以下代码会输出“Py”:
三、连接操作
多个字符串相加会生成一个新串,比如以下代码输出”Love Python“:
四、大小写转换
调用字符串的upper与lower方法会分别生成新的大写和小写的字符串,比如以下代码第一个输出:”I LOVE PYTHON“,第二个输出:”i love python“:
五、前后缀判断
调用字符串的startswith与endswith方法可以判断字符串是否以某个子串开关或者结尾,比如以下会分别打印出 ” python startswith py “ 和 ” python endswith on “:
六、查找与替换子串
调用find方法可以判断是否包含某个子串,比如以下代码会输出" python contains th" 和 " python doesn't contain he":
调用replace方法可以对字符串进行替换,比如要把"hello world"中的”hello“替换为”world“,以下代码会输出:”world world“
七、分隔字符串
如果我们要把一句话按空格分隔为一个一个的单词要怎么做呢,这时调用split方法即可,比如以下代码会把”hello world ni hao“转换为["hello","world","ni","hao"]:
八、清除前后字符
如果一个字符串前后有空白字符,我们需要去掉,你可以调用字符串的替换方法来做,但更简单的做法是调用strip方法,比如以下代码就会去掉两端的空白字符输出“hello python”:
九、大小写对换
如果我们需要把字符串中的小写转换为大写,大写转换为小写,那要怎么做呢,很简单,调用下swapcase就可以了,如以下代码会输出“ heLLO pYThON ”:
十、字符分类判断
有很多方法用来判断一个字符串是否属于某个分类,比如 isdigit判断是否是数字,isalpha判断是否是字母,isalnum判断是否是字母数字等,如下代码:
‘陆’ 用python模糊检索EXCEL文件的内容,并写入新的EXCEL表
这类基础逻辑编程初学可以手写逻辑,这个基本如下:
载入基础信息(Excel地址)
###手动指定###
获取输入查询数据
###input()获取,保存指变量###
打开Excel文件
####使用openpyxl打开,获取工作簿对象和表对象####
获取excel有效行与列数据
### 可以函数判断,最好手工写非空判断获取####
遍历返回结果数据
### 读取每个单元格 查询字符串即可,习惯用Count还是find函数看具体需求和习惯###
写入文件
同样可以采用openpyxl写入excel或者直接写入txt文件
‘柒’ 如何在Python字符串行表中查找出指定字符所在字符串
python 字符串查找有4个方法,1 find,2 index方法,3 rfind方法,4 rindex方法。
1 find()方法:查找子字符串,若找到返回从0开始的下标值,若找不到返回-1
info = 'abca'
print info.find('a')##从下标0开始,查找在字符串里第一个出现的子串,返回结果:0
info = 'abca'
print info.find('a',1)##从下标1开始,查找在字符串里第一个出现的子串:返回结果3
info = 'abca'
print info.find('333')##返回-1,查找不到返回-1
2 index()方法:
python 的index方法是在字符串里查找子串第一次出现的位置,类似字符串的find方法,不过比find方法更好的是,如果查找不到子串,会抛出异常,而不是返回-1
info = 'abca'
print info.index('a')
print info.index('33')
rfind和rindex方法用法和上面一样,只是从字符串的末尾开始查找