如何在txt文件中搜索和存储文本的特定部分

时间:2019-02-22 20:01:07

标签: python python-3.x

我正在编写一个脚本,在其中可以搜索txt文件中的特定文本,然后将其写入另一个txt文件。我使用两个文件名。文件“ in.txt”包含带有开始和结束标记的文本的不同部分。起始标记是一个变量:例如“ ^ 1”,“ ^ 2”或“ ^ 3”。结束标记始终是相同的caractre“ ^”)。 我的意图是编写一个代码,使得可以在“ in.txt”中搜索指定的变量(例如:“ ^ 3”),该变量用作开始标记,并从该点开始读取所有跟随的行,直到到达结束标记(我定义为“ ^”)。 此后,我想将这些行写入文件“ out.txt” 我是pyhton的新手,我必须学习很多东西。 到目前为止,我用谷歌搜索,但没有找到我使用的解决方案。我只找到了非常复杂的解决方案,但是没有一个给我建议来解决我的问题(使用开始标记和结束标记进行搜索)。

到目前为止,我的代码是:

tracker

我在文件“ out.txt”中仅得到“ ^ 3”。而已。也没有以下几行。而且我还没有弄清楚如何在搜索行中编码“结束标记”。 请帮帮我!对于经验丰富的用户的每条提示,我都将不胜感激,它们可以帮助我进一步提高自己的编码能力。谢谢!

2 个答案:

答案 0 :(得分:0)

我不确定您在做什么错,但这对我来说很好。可能是您重用了变量linesf1

 with open('in.txt', 'r') as f:
     lines = f.readlines()   
     lin = [i for i in lines if '^ 3' in i]              
     with open('out.txt', 'w') as f1:
         f1.write(str(lin))

答案 1 :(得分:0)

这是我的“ in.txt”文件的格式。

^ 0 这是文本的第0部分。Lorem ipsum dolor坐着,安全上流。 Donec purus nunc,aucin eu dignissim sed,lacinia eu urna。在劳雷埃特,尼苏尔·塞德 ^ ^ 1 这是文本的第1部分。Lorem ipsum dolor坐下来,私立上位。 Donec purus nunc,aucin eu dignissim sed,lacinia eu urna。在劳雷埃(Laoreet),尼苏尔(Nesl)sed interdum tempus,iodio ^ 2 这是文本的第2部分。Lorem ipsum dolor坐着,安全自在。 Donec purus nunc,aucin eu dignissim sed,lacinia eu urna。在劳雷埃(Laoreet),尼苏尔(Nesl)sed interdum tempus,iodio ^ 3 这是本文的第3部分。Lorem ipsum dolor坐下来,私下自拔。 Donec purus nunc,aucin eu dignissim sed,lacinia eu urna。在劳雷埃特,尼苏尔·塞德 ^ ................... ................... ................... ^ 33 这是文本的第33部分。Lorem ipsum dolor坐着,奉献自若。 Donec purus nunc,aucin eu dignissim sed,lacinia eu urna。在劳雷埃特,尼苏尔·塞德 ^ 运行代码时,我进入“ out.txt”

['* 3 \ n','* 33 \ n']

仅此而已。因此,这不是获得我想要的结果的方法。当我要在begin变量之后输入文本时:“ ^ 3” Ik要获取文本:

这是文本第3部分。Lorem ipsum dolor坐着,安全奉献精英。 Donec purus nunc,aucin eu dignissim sed,lacinia eu urna。在laoreet中,尼苏尔sed interdum tempus,dioo

您知道该问题的解决方案吗?