我在Windows机器上使用Python版本3.6。我正在用文本文件open()
和readlines()
阅读。在阅读文本文件行后,我想将某些行写入新的文本文件,但排除了某些范围的行。我不知道要排除的行的行号。文本文件很大,要排除的行的范围在我正在阅读的文本文件中有所不同。我可以搜索已知的关键字来查找要从要写入的文本文件中排除的范围的开始和结束。Python 3+,读取文本文件并写入新文件排除行范围
我到处都在网上搜索,但我似乎无法找到一个优雅的解决方案。以下是我想要实现的一个例子。
a
b
BEGIN
c
d
e
END
f
g
h
i
j
BEGIN
k
l
m
n
o
p
q
END
r
s
t
u
v
BEGIN
w
x
y
END
z
总之,我想将上面的代码读入Python。之后,写入一个新文件,但是排除从BEGIN开始并在END关键字处停止的所有行。
新的文件应包含以下内容:
a
b
f
g
h
i
j
r
s
t
u
v
z
我最终使用了这个。我不需要在特定情况下使用正则表达式,所以我不打算使用re模块。此外,由于print语句引发了以下警告,我将'print(line,file = output_fh)'更改为output_fh.write(line):预期类型'Optional [IO [str]]',改为'TextIOWrapper [str]' 。 谢谢大家的支持! – jmm5351