import os
import re
def fun(ss):
fuhao=['$','(',')','*','+','.','[',']','?','^','{','}']
for i in fuhao:
ss=ss.replace(i,'\\'+i)
return ss
def zhangjie_chaifen(re_s,file_path,des_dir_name):
f=open(file_path,encoding="utf-8")
data=f.read()
zj=re.findall(re_s,data)
if not os.path.exists(des_dir_name):
os.makedirs(des_dir_name)
pre_label=''
for num,i in enumerate(zj):
filename=re.sub(r'[\n,\s]','',i)+".txt"
filename=filename.replace('\\','').replace('/','').replace(':','').replace('*','').replace('?','').replace('<','').replace('>','').replace('|','')
f=open(des_dir_name+'/'+filename,'w+',encoding="utf-8")
ss=''
if num==0:
ss='(%s.*)%s'%('^',fun(zj[num+1]))
elif num==len(zj)-1:
ss='(%s.*)%s'%(fun(i),'$')
else:
ss='(%s.*)%s'%(fun(i),fun(zj[num+1]))
print(repr(ss))
txt=re.findall(ss,data,re.S)#|re.U|re.M
if len(txt)==0:
print('内容为空,请检查正则')
return ''
f.write(txt[0])
f.close()
if __name__=="__main__":
#s=r'\n第[一,二,三,四,五,六,七,八,九]章.*\n'
#zhangjie_chaifen(s,'shu.txt','files')
#s=r'\n[1-9]. [1-9] .*\n'
#zhangjie_chaifen(s,'files/第八章疲劳断裂的断口及其分析.txt','files1')
s=r'\n[1-9].[1-9].[1-9] .*\n'
zhangjie_chaifen(s,'files1/8.6疲劳断口的物理数学模型及定量反推分析.txt','files2')