我正在尝试解析一个大文本文档。我想使用此代码
从本文档中提取信息enumerated_journal = ""
with open('journal.0028.txt', 'r') as file_object:
for line in enumerate(file_object.readlines()):
enumerated_journal += str(line) + "\n"
for line in enumerated_journal.splitlines():
if "jrn." in line.lower() and "username" in line.lower():
print(line)
此代码在文本文档中找到包含我用作过滤器的两个字符串的行。我想知道如何打印在此行之前或之后的行,以获得一定数量的行。
例如,如果print(line)返回,
"Username: Christian"
我想在此行之前和之后打印行。
"User Data:"
"Username: Christian"
"Age: 23"
"Location: Texas"
我提前感谢您的帮助!如果我需要澄清任何内容,请告诉我。
答案 0 :(得分:1)
您可以尝试使用linecache
module
答案 1 :(得分:1)
您正在将整个文件作为列表和枚举读入内存,因此您所要做的就是使用列表中的当前索引来获取其他附近的行。我将你的比较改为一个正则表达式更快一点,并提出:
{{1}}
答案 2 :(得分:0)
您可以改为使用索引(使用enumerate()
):
indices = [index
for index, line in enumerate(read_journal_enumerated('journal.0028.txt').splitlines())
if "jrn." and "username" in line.lower()]
之后,您可以使用这些来打印index + / - x
行。
答案 3 :(得分:0)
这应该让你在那里的一部分:
rowspan