我是python的新手并尝试编写一个脚本,用于复制5行之前和找到匹配字符串之后的5行
import re
text_file = open(input("Input-file name : ") , "r")
fi = text_file.readlines()
test = re.compile(r'matching character')
for i in range (len(fi)):
if test.search(fi[i]):
print(fi[max(0, i-5)])
print(fi[max(0, i-4)])
print(fi[max(0, i-3)])
print(fi[max(0, i-2)])
print(fi[max(0, i-1)])
print(fi[max(0, i-0)])
print(fi[max(0, i+1)])
print(fi[max(0, i+2)])
print(fi[max(0, i+3)])
print(fi[max(0, i+4)])
有没有比添加多个print语句更好的方法来在一个命令中获取输出。
答案 0 :(得分:1)
假设匹配的行包含在5行""之后,则:
block = fi[max(0, i - 5): min(len(fi), i + 5)]
会给你一个行列表。要将列表打印为一个块,您可以执行以下操作:
print(''.join(block))