我有以下Key Value格式的文本文件

--START--
FirstName Kitty
LastName McCat
Color Red
random_data
Meow Meow
--END--


我想将文本中的特定值提取到变量或字典中。例如,如果我要提取LastNameColor的值,什么是最好的方法?

random_data可以在文件中的任何位置,并且跨多行。

我已经考虑过使用正则表达式,但是我担心性能和可读性,因为在真实代码中,我需要提取许多不同的键。

我还可以遍历每行并检查每个键,但是当有10个以上的键时,这很混乱。例如:

if line.startswith("LastName"):
    #split line at space and handle
if line.startswith("Color"):
    #split line at space and handle


希望有一些清洁的东西

最佳答案

tokens = ['LastName', 'Color']
dictResult = {}
with open(fileName,'r') as fileHandle:
   for line in fileHandle:
      lineParts = line.split(" ")
      if len(lineParts) == 2 and lineParts[0] in tokens:
           dictResult[lineParts[0]] = lineParts[1]

08-07 16:41