当前位置:首页 » 编程语言 » python文件查找字符串

python文件查找字符串

发布时间: 2023-12-28 10:35:24

❶ 如何在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方法用法和上面一样,只是从字符串的末尾开始查找

❷ python3在文件夹中查找指定文件方法封装

不是人人都能活的低调,可以低调的基础是随时都能高调。

上一篇: configobj读写.ini配置文件方法封装
下一篇: python3使用hmac、hashlib加密字符串方法封装

本篇文章介绍一种方法在文件夹中查找指定文件:
1、方法【get_all_file】:根据给出的路径进行递归,找到文件夹下所有的文件,以生成器的方式返回(占用内存低),也可以添加到列表(list)(占用内存高)。
2、方法【expand_list】:递归嵌套列表,展开列表,此步骤根据数据结构,如果自己的文件的地址是多层嵌套的列表,可以使用该方法展开列表。
3、方法【find_file】:查找指定文件。

以上方法根据自己的需求进行选择使用,有不足的地方,请各位大佬指出。

如果感觉本文对您有帮助可以点个赞哦

本文仅供交流学习,请勿用于非法途径

仅是个人意见,如有想法,欢迎留言

❸ 如何用Python语言实现在一个文件中查找特定的字符串

用正则表达式

>>>s='helloworld'
>>>importre
>>>re.search('wor',s)
<_sre.SRE_Matchobject;span=(6,9),match='wor'>

❹ python 搜索一个指定txt 的字符串 并输出其下面两行

fromtkinterimport*
fromtkinterimportttk
fromtkinterimportfont
importos
importarrange

#课程的字典
crslst={}
crslst_in_num={}

#GUI
root=Tk()

#frame2

#右侧的内容
frame2=ttk.Frame(root,borderwidth=5,relief="sunken")
frame2.grid(column=1,row=0)

#将数字转换为汉字的字典
numtoch={1:'一',2:'二',3:'三',4:'四',5:'五'}

#设置课表周围周一至周五和1至13的标签
fornuminlist(range(1,6)):
ttk.Label(frame2,text='周'+numtoch[num]).grid(column=num,row=0)
emptylist=[]
fornuminlist(range(1,14)):
ttk.Label(frame2,text='第'+str(num)+'节').grid(column=0,row=num)

#课表主体
schd1=Listbox(frame2,height=13)
schd1.grid(column=1,row=1,rowspan=13,sticky=(N,S,E,W))
schd2=Listbox(frame2,height=13)
schd2.grid(column=2,row=1,rowspan=13,sticky=(N,S,E,W))
schd3=Listbox(frame2,height=13)
schd3.grid(column=3,row=1,rowspan=13,sticky=(N,S,E,W))
schd4=Listbox(frame2,height=13)
schd4.grid(column=4,row=1,rowspan=13,sticky=(N,S,E,W))
schd5=Listbox(frame2,height=13)
schd5.grid(column=5,row=1,rowspan=13,sticky=(N,S,E,W))

#设置字体
ft=font.Font(family='MicrosoftYaHei',size=12,weight='normal')

#为了便捷将五天的课表作为一list
daylist=(schd1,schd2,schd3,schd4,schd5)

#设置课表
fordayindaylist:
day['selectmode']='extended'
day['exportselection']=False
fornuminrange(1,14):
day.insert(0,'无课')
day['font']=ft
day['width']=10


#课表下四个按钮和一个combobox
#改变颜色
defchcolor():
print("33[1;42m33[0m")


butdont=ttk.Button(frame2,text='不上课',command=chcolor).grid(column=3,row=15)

#清除选择
butusel=ttk.Button(frame2,text='清除选择').grid(column=4,row=15)
Label(frame2,text='选择课表').grid(column=0,row=15,columnspan=2,sticky=W)
outputlist=ttk.Combobox(frame2,textvariable=['待选','ok'])
outputlist.grid(column=1,row=15,columnspan=2,sticky=E)

#frame1
#左侧的内容
frame1=ttk.Frame(root,borderwidth=5,relief="sunken")
frame1.grid(column=0,row=0)

#设置上方的label
Label(frame1,text='输入课程信息').grid(column=0,row=0,columnspan=2)

#输入课程号的Label和entry
Label(frame1,text='课程号:').grid(column=0,row=1,sticky=W)
coursenum=StringVar()
inputcoursenum=ttk.Entry(frame1,textvariable=coursenum,width=13)
inputcoursenum.grid(column=1,row=1,sticky=E)

#已选课程的listbox
Label(frame1,text='已选课程').grid(column=0,row=3,sticky=W)
courselist=Listbox(frame1,height=8,width=13,exportselection=False)
courselist.grid(column=0,row=4,columnspan=2,rowspan=8,sticky=W)


defisrtcrs():#加入课程
k=0
num=0
print(num,courselist.size())
whilenum<courselist.size():
ifinputcoursenum.get()==courselist.get(num):
k=1
num+=1
ifk==0:
courselist.insert(0,inputcoursenum.get())
crslst[inputcoursenum.get()]=[]
crslst_in_num[inputcoursenum.get()]=[]
print(crslst)
print(crslst_in_num)
return


defdelcrs():#删除课程
#print(courselist.curselection())
#print(courselist.get(courselist.curselection()))
crslst_in_num.pop(courselist.get(courselist.curselection()))
crslst.pop(courselist.get(courselist.curselection()))
courselist.delete(courselist.curselection())
print(crslst)
print(crslst_in_num)
return


defshwtm(*args):#当选中一门课程,时间listbox改为对应的时间
print('here')
timelist.delete(0,END)
tmlst=crslst[courselist.get(courselist.curselection())]
iflen(tmlst)!=0:
fortimeintmlst:
timelist.insert(END,time)
return


#courselist的选中事件
courselist.bind('<<ListboxSelect>>',shwtm)

#加入课程和删除课程的按钮
addcourse=ttk.Button(frame1,text='加入课程',command=isrtcrs).grid(column=0,row=2)
deletcourse=ttk.Button(frame1,text='删除课程',command=delcrs).grid(column=0,row=12)

#已选课程的时间listbox
Label(frame1,text='时间列表').grid(column=1,row=3,sticky=E)
timelist=Listbox(frame1,height=8,width=13,exportselection=False)
timelist.grid(column=1,row=4,columnspan=2,rowspan=8,sticky=E)


defisrttim():#加入时间
num=1
time=[]
time_in_num=[]
strofod=''
fordayindaylist:
iflen(day.curselection())!=0:
strofod=numtoch[num]
temp=day.curselection()
forclsintemp:
strofod=strofod+''+str(cls+1)
time_in_num.append((num-1)*13+(cls+1))
num+=1
iflen(strofod)!=0:
time.append(strofod)
strofod=[]
iflen(time)!=0:
timelist.insert(END,time)
crslst[courselist.get(courselist.curselection())].append(time)
crslst_in_num[courselist.get(courselist.curselection())].append(time_in_num)
print(crslst)
print(crslst_in_num)
return


defdeltim():#删除时间
print(timelist.curselection())
forselintimelist.curselection():
crslst[courselist.get(courselist.curselection())].pop(sel)
crslst_in_num[courselist.get(courselist.curselection())].pop(sel)
timelist.delete(timelist.curselection())
print(crslst)
print(crslst_in_num)
return


#加入时间和删除时间的按钮
addtime=ttk.Button(frame1,text='加入时间',command=isrttim).grid(column=1,row=2)
delelttime=ttk.Button(frame1,text='删除时间',command=deltim).grid(column=1,row=12)


defcreatcourselist():#建立课程列文本文档
withopen('slist.txt','w')asslist:
slist.writelines(str(len(crslst_in_num))+' ')#课程数
forcrs,tlstincrslst_in_num.items():
slist.writelines(crs+' ')#课程名
slist.writelines(str(len(tlst))+' ')#可选时间数
fortimeintlst:
slist.writelines(str(len(time))+' ')#某一可选时间的节数
fornintime:
slist.writelines(str(n)+' ')#第几节
return


defshowoutput():#在右侧的选择课表combobox里显示可选课表
filename_list=[]
forfilename_einos.listdir('output'):
filename_list.append(filename_e)
outputlist['values']=filename_list
return


defarrg():#排课
print('here')
creatcourselist()
forfilename_einos.listdir('output'):
os.remove('output/'+filename_e)
arrange.arrangement_mod()
showoutput()
return


#当用户选择某一可选课表时,展示课表
defshowcrslist(*args):
print(outputlist.get())
forfilename_einos.listdir('output'):#寻找所选项对应的文件
iffilename_e==outputlist.get():
withopen('output/'+filename_e,'r')asf_r:#打开对应的文件
nr=f_r.readlines()#按行读取内容
k=0
fordayindaylist:
day.delete(0,END)#删除课表的原有内容
fornuminrange(1,14):
#print(nr[k])
#加入新的内容
ifnr[k]=='0 ':
day.insert(END,'')
else:
day.insert(END,nr[k].strip())
k+=1
break#完成之后退出循环
return


#可选课表combobox选择事件
outputlist.bind('<<ComboboxSelected>>',showcrslist)

#排课的按钮
run=ttk.Button(frame1,text='排课',command=arrg).grid(column=0,row=13,columnspan=2)

#frame_search
frame_s=ttk.Frame(root,borderwidth=5,relief='sunken')
frame_s.grid(column=2,row=0)
ttk.Label(frame_s,text='搜索课程').grid(column=0,row=0,columnspan=2)
ttk.Label(frame_s,text='课程号:').grid(column=0,row=1,sticky=E)

crs_num=StringVar()
crs_search=ttk.Entry(frame_s,textvariable=crs_num,width=12).grid(column=1,row=1,sticky=E)

search_crs=ttk.Button(frame_s,text='搜索').grid(column=0,row=2)
adp=ttk.Button(frame_s,text='加入').grid(column=1,row=2)

ttk.Label(frame_s,text='课程号:').grid(column=0,row=3,columnspan=2,sticky=W)
ttk.Label(frame_s,text='课程名:').grid(column=0,row=4,columnspan=2,sticky=W)
ttk.Label(frame_s,text='上课时间:').grid(column=0,row=5,columnspan=2,sticky=W)

root.mainloop()

❺ python怎么样获取某个文件行指定字符串后面的字符

把每行读取后去掉前面不要的部分就可以了,这种简单处理不需要用正则,正则是用来进行复杂处理的。
比如读一行到s,然后
r,_,s=s.partition('指定字符串')
现在,r是不要的部分,s就是指定字符串后的部分,如果有结果的话,_的值也是指定字符串。

❻ 如何利用python语言匹配文本文件中的指定字符串,并将其所在行的后面几

s="指定字符串"
f=open("文本文件名")
n=int(raw_input("输入输出的行数:"))
line=f.readline()
whileline:
ifsinline:
printline
foriinrange(n):
line=f.readline()
ifline:
printline
else:
break
ifnotline:break
line=f.readline()

❼ python如何实现 文件中查找上/下一个字符串

用find()函数就可以
比如:
fpr=open("你的文件名")
n=0
for line in fpr:
n+=1
if line.find("12efde")!=-1:
pirnt n

你要的是这样话,你可以先把数据读到列表中,然后用for循环来实现,顺序查找就i增加,查找上一个i减少,查找到后用break结束就行了,百万行的确有点到,读到文本不知道会不会卡,你试下看,如果你会用数据库存储数据的话会好些

热点内容
怎么看pppoe密码 发布:2024-11-30 08:35:35 浏览:509
sandisk16gb存储卡 发布:2024-11-30 08:34:42 浏览:953
eclipsejava反编译 发布:2024-11-30 08:34:37 浏览:899
yy静态头像源码 发布:2024-11-30 08:30:21 浏览:680
javaparseint 发布:2024-11-30 08:23:12 浏览:909
抖音密码箱保险在哪里 发布:2024-11-30 08:10:43 浏览:998
广告文学脚本格式 发布:2024-11-30 08:09:57 浏览:634
期末到了解压的方法 发布:2024-11-30 07:53:49 浏览:865
sqlce数据库 发布:2024-11-30 07:41:21 浏览:726
奇瑞5x配置如何 发布:2024-11-30 07:39:50 浏览:642