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が表示される場合。デバイスの名前は、後で再び表示される場合があります)テキストファイル。

したがって、デバイス名 DeviceA または DeviceA2 が選択された場合: 出力は次のようになります (デバイス名は無視できます。デバイス名とその他の情報の間の情報のみが必要です:

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

DeviceB の場合:

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

その他の情報が表示されたらファイル全体を分割してから、デバイス名を解析してデバイス名で分割しようとしました。しかし、これは常に何らかの問題を引き起こします。助言がありますか?

ありがとうございました :)

4

1 に答える 1

1

これは非常に紛らわしい英語ですが、特定のデバイスの「パラメータ値:」の後と「その他の情報」の前のテキストが必要な場合は、文字列が部分文字列とインデックスに持つメソッドが必要です。

index を使用して必要なデバイスのインデックスを見つけてから、再度 index を使用して (必要なデバイスのインデックスを 2 番目の引数として)、次の「パラメーター値:」を見つけてから、もう一度「その他の情報」を見つけてから、取得します。部分文字列。

次のようなもの:

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 に答える