删除导入的文本文件(Python)

我试图从我从Kindle导入的文本文件中删除几行文字。文字如下:删除导入的文本文件(Python)

Shall I come to you? 

Nicholls David, One Day, loc. 876-876

Dexter looked up at the window of the flat where Emma used to live.

Nicholls David, One Day, loc. 883-884

I want to grab the bin bag and do a forensics

Sophie Kinsella, I've Got Your Number, loc. 64-64

完整文件更长,这只是一个文件。我的代码的目标是删除所有写有“loc。”的行,以便只保留摘录。我的目标也可以被视为删除空白行之前的行。

到目前为止我的代码如下所示:

f = open('clippings_export.txt','r', encoding='utf-8') 

message = f.read()

line=message[0:400]

f.close()

key=["l","o","c","."," "]

for i in range(0,len(line)-5):

if line[i]==key[0]:

if line[i+1]==key[1]:

if line[i + 2]==key[2]:

if line[i + 3]==key[3]:

if line[i + 4]==key[4]:

最后if找到了完全符合其中每个“同上。”位于文件中的位置(索引)。尽管如此,在这个阶段之后,我不知道如何回到行中,以便代码捕获行开始的位置,并且可以完全删除。接下来我可以做什么?你是否推荐我另一种方法来删除这条线?

在此先感谢!

回答:

我认为这个问题可能有点误导!

无论如何,如果你只是想删除这些行,你需要检查它们是否包含“loc”。子。最简单的方法可能是使用in operator。

而不是从读取整个文件()函数,逐行读取文件(例如使用readlines() function)。然后你可以检查它是否包含你的密钥,如果它包含,就省略它。

由于结果是现在的字符串列表,您可能想合并它:str.join()。

这里我用另一个列表来存储所需的行,你也可以使用“更pythonic”filter()或列表理解(下面提到的类似问题中的例子)。

f = open('clippings_export.txt','r', encoding='utf-8') 

lines = f.readlines()

f.close()

filtered_lines = []

for line in lines:

if "loc." in line:

continue

else:

filtered_lines.append(line)

result = ""

result = result.join(filtered_lines)

顺便说一句,我想这可能是一个重复的 - Here's question about the opposite(即希望包含的关键线)。

以上是 删除导入的文本文件(Python) 的全部内容, 来源链接: utcz.com/qa/258751.html

回到顶部