假设我有一个文本文件(input_file.txt,大小~10gb),内容如下 6月6日17:58:13其他字符串不是唯一的 6月6日17:58:13其他字符串不是唯一的 6月6日17:58:14其他字符串不是唯一的 6月6日17:58:14其他字符串不是唯一的 6月6日17:58:15其他字符串不是唯一的 6月6日17:58:15其他字符串不是唯一的 6月6日17:58:15其他字符串不是唯一的 6月6日17:58:15其他字符串不是唯一的 6月6日17:58:16其他字符串不是唯一的 6月6日17:58:16其他字符串不是唯一的 6月6日17:58:16其他字符串不是唯一的 6月6日17:58:17其他字符串不是唯一的 6月6日17:58:18其他字符串不是唯一的 6月6日17:58:19其他字符串不是唯一的 6月6日17:58:20其他字符串不是唯一的
现在我需要编写一个Python代码来读取文本文件,并将start和end之间的内容复制到另一个文件中。
我写了以下代码。
import re
with open(r'C:\Python27\log\master_input.txt', 'r') as infile, open(r'C:\Python27\log\output.txt', 'w') as outfile:
copy = False
for line in infile:
if re.match("Jun 6 17:58:14(.*)", line):
copy = True
elif re.match("Jun 6 17:58:16(.*)", line):
copy = False
elif copy:
outfile.write(line)
我的代码输出:(注意:我没有按预期得到所需的输出)
6月6日17:58:14其他字符串不是唯一的
6月6日17:58:14其他字符串不是唯一的
6月6日17:58:16其他字符串不是唯一的
6月6日17:58:16其他字符串不是唯一的
6月6日17:58:16其他字符串不是唯一的
6月6日17:58:16其他字符串不是唯一的
6月6日17:58:16其他字符串不是唯一的
预期输出为:
6月6日17:58:14其他字符串不是唯一的
6月6日17:58:14其他字符串不是唯一的
6月6日17:58:15其他字符串不是唯一的
6月6日17:58:15其他字符串不是唯一的
6月6日17:58:15其他字符串不是唯一的
6月6日17:58:15其他字符串不是唯一的
6月6日17:58:16其他字符串不是唯一的
6月6日17:58:16其他字符串不是唯一的
6月6日17:58:16其他字符串不是唯一的
请帮助我以最佳方式做到这一点......先谢谢。
答案 0 :(得分:0)
不是Python,但每个自尊的开发人员都应该知道sed
。
$ cat data.txt
foo
bar
baz
qux
quux
quuux
$ sed -n "2,4p" < data.txt
bar
baz
qux