python在jupyter中用findall和search分别实现读取txt文档中书名和ID
时间: 2024-10-11 15:07:20 浏览: 43
在Jupyter Notebook中,Python通常使用`re`模块(正则表达式库)来处理文本搜索,如查找特定模式。如果你想从.txt文档中提取书名和ID,假设它们有固定的格式,比如书名在每行开始,ID紧跟其后:
```python
import re
# 假设文件名为'doc.txt'
with open('doc.txt', 'r') as file:
content = file.read()
# 使用正则表达式 `^` 表示行首,`\d+` 匹配数字序列(ID),`[^0-9\s]+` 匹配非数字和空格字符(书名)
pattern = r'^\d+\s*(?P<id>\d+)\s*-\s*(?P<title>[^0-9\s]+)'
matches = re.findall(pattern, content)
book_data = [(int(match['id']), match['title']) for match in matches]
# book_data 现在是一个列表,每个元素包含一对元组 (ID, 书名)
# 输出前几项结果
for i, (id, title) in enumerate(book_data[:5]):
print(f"第{i + 1}条记录: ID {id}, 书名 {title}")
```
这里我们首先打开文件并读取内容,然后定义了一个正则表达式模式。`search`函数可以在整个字符串中返回第一个匹配的结果,而`findall`则会找到所有匹配的部分,并返回一个匹配列表。
阅读全文