📅  最后修改于: 2023-12-03 15:28:48.475000             🧑  作者: Mango
该题目要求实现一个关键字搜索功能,具体要求如下:
该题目可以分为以下几个步骤:
我们可以使用 Python 内置的 open()
函数读取文件内容,并使用 readlines()
方法将文件内容按行分割成一个列表。
def read_file(file_path):
with open(file_path, 'r') as f:
return f.readlines()
我们可以使用 Python 内置的 re
模块进行正则表达式匹配,用于搜索关键字。
import re
def search_keywords(lines, keywords):
results = []
for i, line in enumerate(lines):
for keyword in keywords:
if re.search(keyword, line):
results.append((i + 1, line))
break
return results
我们可以使用 Python 内置的 sorted()
函数按照行号进行排序,然后将结果输出。
def print_results(results):
sorted_results = sorted(results, key=lambda x: x[0])
for i, line in sorted_results:
print(f"{i}: {line.rstrip()}")
通过以上三个步骤,我们可以实现一个简单的关键字搜索程序。该程序可以扩展为支持 GUI 界面,同时支持更多的搜索选项等。
Markdown格式代码片段:
# 门|门 IT 2007 第 68 题 - 程序员介绍
## 题目描述
该题目要求实现一个关键字搜索功能,具体要求如下:
- 用户输入关键字,程序从一个预先定义好的文本文件中查找所有含有该关键字的行。
- 程序需要支持多个关键字同时搜索。
- 搜索结果需要按照文本中出现的顺序排列,每一行需要输出行号和行内容。
## 解题思路
该题目可以分为以下几个步骤:
1. 定义一个函数用于从文件中读取所有的行,并返回一个列表。
2. 定义一个函数用于搜索关键字,并返回搜索结果。
3. 定义一个函数用于输出搜索结果,并按照文本中出现的顺序排列。
```python
# 读取所有行
def read_file(file_path):
with open(file_path, 'r') as f:
return f.readlines()
# 搜索关键字
import re
def search_keywords(lines, keywords):
results = []
for i, line in enumerate(lines):
for keyword in keywords:
if re.search(keyword, line):
results.append((i + 1, line))
break
return results
# 排序输出结果
def print_results(results):
sorted_results = sorted(results, key=lambda x: x[0])
for i, line in sorted_results:
print(f"{i}: {line.rstrip()}")
通过以上三个步骤,我们可以实现一个简单的关键字搜索程序。该程序可以扩展为支持 GUI 界面,同时支持更多的搜索选项等。