python 取出文件特定字符串包含的几行
时间: 2023-11-27 17:05:22 浏览: 98
你可以使用 Python 中的文件操作函数和字符串操作函数来实现这个功能。
具体步骤如下:
1. 打开文件,使用 `open()` 函数。
2. 逐行读取文件内容,使用 `readline()` 函数。
3. 判断当前行是否包含特定的字符串,使用字符串的 `in` 操作符。
4. 如果包含特定的字符串,则将当前行及其后面的几行输出或保存到一个新的文件中。
下面是一个示例代码,假设你要取出包含字符串 `"hello"` 的行及其后面的 2 行:
```python
with open("input.txt", "r") as input_file, open("output.txt", "w") as output_file:
lines = input_file.readlines()
for i, line in enumerate(lines):
if "hello" in line:
output_file.write(line)
for j in range(i+1, min(i+3, len(lines))):
output_file.write(lines[j])
```
在上述代码中,我们用 `with open() as` 语句打开了一个输入文件和一个输出文件,并分别用 `input_file` 和 `output_file` 变量引用它们。接着我们使用 `readlines()` 函数读取了所有行,并用 `enumerate()` 函数同时获得行号和行内容。然后我们判断当前行是否包含字符串 `"hello"`,如果包含,就将该行及其后面的两行写入输出文件中。
需要注意的是,上述代码中的 `min(i+3, len(lines))` 是为了防止数组越界。如果当前行已经是最后一行,则 `lines[j]` 会出现 `IndexError` 异常。通过取 `i+3` 和 `len(lines)` 的最小值,可以保证不会出现数组越界的情况。
阅读全文