我在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