我正在编写一个脚本,在其中可以搜索txt文件中的特定文本,然后将其写入另一个txt文件。我使用两个文件名。文件“ in.txt”包含带有开始和结束标记的文本的不同部分。起始标记是一个变量:例如“ ^ 1”,“ ^ 2”或“ ^ 3”。结束标记始终是相同的caractre“ ^”)。 我的意图是编写一个代码,使得可以在“ in.txt”中搜索指定的变量(例如:“ ^ 3”),该变量用作开始标记,并从该点开始读取所有跟随的行,直到到达结束标记(我定义为“ ^”)。 此后,我想将这些行写入文件“ out.txt” 我是pyhton的新手,我必须学习很多东西。 到目前为止,我用谷歌搜索,但没有找到我使用的解决方案。我只找到了非常复杂的解决方案,但是没有一个给我建议来解决我的问题(使用开始标记和结束标记进行搜索)。
到目前为止,我的代码是:
tracker
我在文件“ out.txt”中仅得到“ ^ 3”。而已。也没有以下几行。而且我还没有弄清楚如何在搜索行中编码“结束标记”。 请帮帮我!对于经验丰富的用户的每条提示,我都将不胜感激,它们可以帮助我进一步提高自己的编码能力。谢谢!
答案 0 :(得分:0)
我不确定您在做什么错,但这对我来说很好。可能是您重用了变量lines
,f1
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
您知道该问题的解决方案吗?