【发布时间】:2014-07-30 21:25:09
【问题描述】:
我正在尝试解析一些文本文件并需要提取文本块。具体来说,以“1:”开头的行和文本后的 19 行。 “1:”不在每个文件的同一行开始,并且只有一个“1:”实例。我更愿意保存文本块并将其导出到单独的文件中。另外,我需要保留原文件中文本的格式。
不用说我是 Python 新手。我通常使用 R,但这些文件与 R 并不真正兼容,我有大约 100 个要处理。任何信息,将不胜感激。
我目前的代码是:
tmp = open(files[0],"r")
lines = tmp.readlines()
tmp.close()
num = 0
a=0
for line in lines:
num += 1
if "1:" in line:
a = num
break
a = num 是我想要的文本块的行号。然后我想将接下来的 19 行代码保存到另一个文件中,但不知道如何执行此操作。任何帮助将不胜感激。
【问题讨论】:
-
如果您只需要提取这些行,您无需编写全新的程序即可:
egrep -A 19 "^1:" myfile.txt -
这行得通,但我得写一个批处理文件来处理所有文件,对吧?
-
也许,也许不是。我对你的情况没有足够的了解。
-
输入文件有多大,通常和最大?
-
附议@Robᵩ,没有理由为此使用python。如果你愿意,你可以在 python 中为 grep 编写一个包装器,但这对 grep 来说是个问题。
标签: python string-parsing