总体思路
1.首先确定相对路径
1.1 读文件
2.然后写字符串正则表达式匹配初步诊断
2.2首先根据每行数据观察是否含有初步诊断,假如没有则遍历下一行,若是存在在则模糊查询肿瘤是否需存在,若是存在则记录下标,若是不存在则继续向后查询,若是匹配到诊断依据和鉴别诊断则直接跳出查找下一个文本
3.利用模糊正则匹配匹配初步诊断中的肿瘤的查询
4.记录保存相关文档序号
5.将记录的相关文档转移到另一个文件夹
代码
# -*- coding:utf-8 -*-
import re
import os,shutil
#确定相对地址
path1 = r'zhong/'
path2 = r'feizhong/'
filelist = path1
#数组保存相应文本下标
new_line = []
#在相应的文件夹下读取文件
path = path1
file_path=[]
for filename in os.listdir(path):
file_path.append((os.path.join(filename)))
print("全部文件")
print (file_path)
#首先匹配初步诊断
#匹配肿瘤等词的模糊查询
#匹配诊断依据和鉴别诊断节省时间跳出匹配
def zhengze(f):
#正则规则
regex_start = '初步诊断'
regex_end = '诊断依据和鉴别诊断'
regex_zhong ='肺恶性肿瘤'
new_x = f
#以数组的形式传出,而不是以字符串的形式
pat = re.compile(regex_start+ '(.*?)' +regex_end, re.S)
match_obj=pat.findall(new_x)
str1 = ','.join(match_obj)
match_judje = re.search(regex_zhong,str1)
if match_judje:
return True
else:
return False
"""
>>>s=r’/* comment 1 */ code /* comment 2 */’
>>> re.findall( r’(?<=//*).+?(?=/*/)’ , s )
[' comment 1 ', ' comment 2 ']
"""
#对每个文本调用数进行晒选,筛选过后的数据记录文本信息
for adress in os.listdir(path):
address = path1+adress
file_object = open(address,"r")
#文本中的内容以数组的形式(每行为一个)
lines = file_object.read()
if(zhengze(lines)):
new_line.append(address)
else:
continue
file_object.close()
#满足要求的文件
print("满足文本")
print(new_line)
#转移符合要求的文本
for files in os.listdir(path):
ff = path1 +files
if ff in new_line:
print("正在转移")
print(files)
full_path = os.path.join(path1, files)
despath = path2 #.jpg为你的文件类型,即后缀名,读者自行修改
shutil.copy(full_path, despath)
else:
continue
print("完成功能")