在文本文件中,我有一个关键文本“Remuneraçãototal”。在文件中找到该文本行的第二个匹配项后,我应该在此关键行的前后读取并打印20行。
我试图在互联网上找到类似的东西,但是我什么也没发现。我是python编程的新手,所以对我而言这是一项艰巨的工作。
我只是找到我想要的第一行。
read_file = open(r"C:\Users\guerr\OneDrive\Documentos\PYTHON\TXT_FILES\file.txt", encoding='utf-8') # open file
lines = read_file.readlines() # read all lines
for index, line in enumerate(lines): # enumerate the list
if key in line:
print(line)
A 乙 C d Ë F G
如果我的密钥是“ D”,并且前后的行数范围是2,则应该返回给我:
B C d Ë F
答案 0 :(得分:1)
假设每个字母都在不同的行上,则应该遍历列表并在找到键后停止,并记录您所在的行号。然后,再次打开它,如果它与键之间的距离小于或等于该范围,则打印该行。
例如:
key = "D"
lines = read_file.readlines() # read all lines
for index, line in enumerate(lines): # enumerate the list
if key in line:
key_line = index
for index, line in enumerate(lines):
if abs(index - key_line) <= 2:
print(line)
答案 1 :(得分:1)
lines = '''
A
B
C
D
E
F
G'''
def custom_print(data, key, n):
g = [data[i-2:i] + [val] + data[i+1:i+3] for i, val in enumerate(data) if key in val]
return g[0] if g else []
data = lines.split()
print(custom_print(data, 'D', 2))
打印:
['B', 'C', 'D', 'E', 'F']
如果未找到key
,则custom_print()
返回空列表。