Python处理文本文件并混合数据

按照我的上一个问题。.我简化了它...我需要处理一个文本文件。需要读取文本文件,检测特定单词并处理接下来的几行,而不是继续读取文件,检测某些单词并处理接下来的几行。我们如何做到这一点是python。

文本文件由网络设备的信息组成,该信息是非结构格式,并且每个网络设备的信息格式都不同。我需要检查是否检测到一些单词处理它下面的几行,完成后将其保存到json文件中。比继续读取文件并检测单词并处理其下面的几行...例如,在下面..检测AAA并处理“完成!”行之前的所有行...比继续读取文件并检测到供应商AAA, BBB和CCC运行处理“完成!”行之前的行。每个供应商的过程将有所不同,并且过程将以Done行结束!

例如下面的

vendor: AAA
ID:1
line3-------------
line4------------
line5------------
Done!

vendor:BBB
ID:5
line10-------------
line11-----------
line12------------
line13-------------
line14------------
line15------------
Done!

vendor:CCC
ID:10
line20-------------
line21------------
line22------------
line23-------------
Done!

vendor:BBB
ID:8
line28-------------
line29------------
line30------------
line31-------------
line32------------
line33------------
Done!

vendor: AAA
ID:4
line38-------------
line39------------
line40------------
Done!

每个ID的每个进程都将保存在一个json文件中

这是我到目前为止所做的

with open("outputFile.txt","r") as file:
   for line in file:
      if 'AAA' in line:
         next(file)
         data = [line.strip().split() for line in file]
         print("This is AAA") 

         dict = {"scan":[]}
         for x in data:
            --extract line of data below ID--

         with open('outputAAA.json','w') as f:
            json.dump(dict,f)
      elif 'BBB' in line:
         next(file)
         data = [line.strip().split() for line in file]
         print("This is BBB") 

         dict = {"scan":[]}
         for x in data:
            --extract line of data below ID--

         with open('outputBBB.json',f)
      elif 'CCC' in line:
         next(file)
         data = [line.strip().split() for line in file]
         print("This is CCC") 

         dict = {"scan":[]}
         for x in data:
            --extract line of data below ID--

         with open('outputCCC.json',f)
      else:
         print("No vendor recognised")
         continue

问题...

  1. 它将创建AAA,BBB和CCC的json文件
  2. 它将覆盖json文件
  3. 以某种方式无法最后读取文件。我的意思是...检测到AAA之后...处理第3至5行并写入json文件,然后继续开始再次读取最后一行并检测AAA,BBB或CCC ...如果检测到BBB ...处理接下来的几行,直到Done行!...然后继续读取文件...如果再次检测到AAA ...,请为AAA运行该过程...依此类推...
  4. 未正确运行迭代以检测并相应地运行该进程。

感谢一些关于如何在python中执行操作的建议...谢谢

wangzhenhua7 回答:Python处理文本文件并混合数据

如果您不熟悉文件I / O,请按照a guide入门。

似乎您的JSON每次在if else语句中打开时都会被覆盖。用'w'打开的模式将覆盖文件(如果已存在)。如果要添加到末尾,则需要使用'a'模式将其附加到文件末尾。

with open('outputBBB.json','a') as f
本文链接:https://www.f2er.com/3147927.html

大家都在问