私は、pythonを使ってファイルから特定のブロックのデータを印刷したいと思います。基本的にパーサーとして機能し、私の基準をマスキングするブロックだけを出力します。 私のファイルにコールセンターのログが含まれています。私は "####"で始まり、"</soap:Body>>"
で終わる部分が欲しいですが、それは私のファイルのmsisdnとして知られている特定の番号を含む必要があります:"<msisdn>any number</msisdn>"
私たちのパターンをPythonでmathchingするデータファイルの特定の部分だけを印刷する方法
また、だから、私はreadlines()を行うとき、私は正規表現を使用することはできません私は、列挙型(行)のデータ ここでデータが分割され、私は必要なチャンク全体を検索できません。
ファイルの一部はここにある:
####<Jun 4, 2016 12:05:50 PM IST> <Debug> <MessagingBridgeRuntimeVerbose> <ggneai29> <AircelESB_MS1> <[ACTIVE] ExecuteThread: '13' for queue: 'weblogic.kernel.Default (self-tuning)'> <<WLS Kernel>> <> <> <1465022150722> <BEA-000000> <Bridge NPGBridge doTrigger(): state = 4 stopped = false>
####<Jun 4, 2016 12:05:50 PM IST> <Error> <ALSB Logging> <ggneai29> <AircelESB_MS1> <[ACTIVE] ExecuteThread: '13' for queue: 'weblogic.kernel.Default (self-tuning)'> <<anonymous>> <> <> <1465022150886> <BEA-000000> < [PipelinePairNode1, PipelinePairNode1_request, CreateVASReportingStage, REQUEST] *** CreateVASWrapper Reprting Stage VAS V-3.0 ***: <soap:Body xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<VASProxyType xmlns="http://xmlns.aircel.com/AircelTransformation/ProxyService/OrderProxy/1.0/CreateVASSubscriptionConsumerSchema">
<TransactionId>DATA030620160431128801011429ADD</TransactionId>
<msisdn>8801011429</msisdn>
<productCode>DATA</productCode>
<action>ADD</action>
<IMSI>405801124044563</IMSI>
<SubsType>PrePaid</SubsType>
</VASProxyType>
</soap:Body>>
####<Jun 4, 2016 12:05:50 PM IST> <Error> <ALSB Logging> <ggneai29> <AircelESB_MS1> <[ACTIVE] ExecuteThread: '13' for queue: 'weblogic.kernel.Default (self-tuning)'> <<anonymous>> <> <> <1465022150889> <BEA-000000> < [PipelinePairNode1, PipelinePairNode1_request, Authentication, REQUEST] ***REQUEST FOR VAS V-3.0 ****: <soap:Body xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<VASProxyType xmlns="http://xmlns.aircel.com/AircelTransformation/ProxyService/OrderProxy/1.0/CreateVASSubscriptionConsumerSchema">
<TransactionId>DATA030620160431128801011429ADD</TransactionId>
出力がなければならない:
< [ACTIVE] ExecuteThread:キューの '13':「weblogic.kernel.Default(セルフチューニング) > <「> <> <> < 1465022150886> < [PipelinePairNode1、PipelinePairNode1_request、CreateVASReportingStage、REQUEST] * CreateVASWrapper ReprtingステージVAS V-3.0 *:DATA030620160431128801011429ADD DATA プリペイド >
親切に助けて下さい!
XMLパーサを使用してください。正規表現を使用するだけで頭痛になります。 –
* "データが入力されています" * - 何? * "親切にそれを無視する" * - いいえ、あなたは質問を編集します。 – jonrsharpe
提供されたデータに「 soapenv:Body >>」で終わる部分はありません。質問を更新してください。 – Ohumeronen