先读取文本内容,再根据结构选择字符串处理、正则表达式或专用库提取信息。1. 读取文件或字符串变量;2. 用split()、find()等方法提取固定格式信息;3. 用re.findall()提取邮箱、电话、日期等规律性信息;4. 对JSON、HTML、PDF等结构化文本分别使用json、BeautifulSoup、PyPDF2等工具解析后提取。
提取文本信息在Python中很常见,主要根据文本来源和结构选择合适的方法。核心思路是读取文本内容后,用字符串处理、正则表达式或专用库进行信息抽取。
先将文本加载到程序中,常见方式有读取文件或处理字符串变量。
示例:with open('text.txt', 'r', encoding='utf-8') as f:
text = f.read()
text = "这里是需要提取信息的文本内容"
适用于格式固定的文本,比如提取关键词前后的内容。
title = text.split("标题:")[1].split("\n")[0]
start = text.find("电话:") + 3
end = text.find("\n", start)
phone = text[start:end]
适合提取电话号码、邮箱、日期等有规律的信息。
示例:import re
emails = re.findall(r'[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}', text)
phones = re.findall(r'1[3-9]\d{9}', text)
dates = re.findall(r'\d{4}-\d{2}-\d{2}', text)
TML、PDF)不同格式需用对应工具解析后再提取。
import json data = json.loads(text) value = data['key']
from bs4 import BeautifulSoup
soup = BeautifulSoup(text, 'html.parser')
titles = soup.find_all('h1')
import PyPDF2
reader = PyPDF2.PdfReader('file.pdf')
text = reader.pages[0].extract_text()