我有一个带有20k +行的长文本文件。有四种不同的模式可以识别我想要写入文件的行的开头。这些行在条目文件中重复。有些行不以其中一种模式开头,这些行应被跳过。我想按顺序从四个模式开始抓取行,并按照与基本文件相同的顺序将它们写入文件输出。
例如:
随机文字
第一行的具体开始,随机文本A
随机文字B
第二行的具体开始,随机文本C
随机文字D
等
我希望输出看起来像:
第一行的具体开始,随机文本A. 第二行的具体开始,随机文本C
我在想reg-exp,但我对它们并不熟悉。我想也许逐行执行的功能可能更好,甚至可能更快。重要的是,我必须保留原始的行顺序。
答案 0 :(得分:1)
file = open("input_file",r)
outfile = open("out_file",w)
specific_start = ["specific start pattern1","specific start
pattern2","specific start pattern3","specific start pattern4"]
for line in file:
if not line.startswith(specific_start[0],specific_start[1],specific_start[2],specific_start[3]):
continue
else:
outfile.write(line)
答案 1 :(得分:1)
使用字符串方法startswith()来检查行的开头是否符合您的要求。
这将写入input.txt中的所有行,以" aaaa"开头到output.txt:
wanted = "aaaa"
with open("input.txt", "r") as f_in, open("output.txt", "w") as f_out:
for line in f_in:
if line.startswith(wanted):
f_out.write(line)