0

我有一个文本文件,其中包含某些设备的信息。我想提取一些特定设备的信息。我想知道要提取哪些信息的方法是找到特定字符串时。

输入文本文件:

Table of Contents:
DeviceA ...... Page..
DeviceA2 ..... Page..
DeviceB ...... page..
DeviceB2...... Page..
Device1 ...... Page..
Device2 ...... Page..
DeviceC ...... Page..

Blah
Blah

[DeviceA, DeviceA2] Parameter Values:
Width = 1u
length = 2u etc...
Other Information

blah

[Device1] Parameter Values:
Width = 5u
length = 5u etc..
Other Information

blah

[DeviceB, DeviceB2] Parameter Values:
Width = 11u
length = 22u etc..
Other Information

blah

[Device2] Parameter Values:
Width = 5u
length = 5u etc..
Other Information

DeviceA, A2 description
Device1,2 description etc

我有一个要提取信息的设备名称列表。在这种情况下,我有一个包含 [DeviceA, DeviceA2, DeviceB] 的列表,我想以粗体显示输出(所以当设备名称出现时,然后是Other Information。设备名称稍后可能会再次出现在文本文件。

So when device name DeviceA or DeviceA2 is chosen: the output should be (device name can be ignored, only the information between device name and Other Information is desired:

[DeviceA, DeviceA2] Parameter Values:
Width = 1u
length = 2u etc...
Other Information

当设备B:

[DeviceB, DeviceB2] Parameter Values:
Width = 1u
length = 2u etc..
Other Information

我尝试拆分整个文件时我尝试在出现其他信息然后通过解析设备名称按设备名称拆分。但这总是会导致一些问题。有什么建议么?

谢谢你 :)

4

1 回答 1

1

这是非常令人困惑的英语,但是如果您只想要某些设备的“参数值:”之后和“其他信息”之前的文本,那么您需要的方法字符串具有子字符串和索引。

使用 index 找到您想要的设备的索引,然后再次使用 index(将您想要的设备的索引作为第二个参数)找到以下“参数值:”,然后再次找到“其他信息”然后只需子串。

类似于以下内容:

marker0 = myfile.index("DeviceA")
marker1 = myfile.index("Parameter Values:",marker0)
startpoint = marker1+len("Parameter Values:")
endpoint = myfile.index("Other Information", startpoint)
print("Relevant Information is: "+ myfile.substring(startpoint,endpoint)

当然,您需要将其粘贴到一个函数中以便为每个设备执行此操作,并且您还需要越过文件开头声明的初始设备,但如果您了解上述工作原理,那应该很容易。

于 2013-02-05T14:36:27.140 回答