2本のGPSアンテナから緯度を測定する非常に大きなテキストファイルがあります。 ファイルにはガベージデータがたくさんあり、そこから緯度の測定値を抽出する必要があります。 これらは、他のテキストの他の行の間に、時折発生します。それらが発生した 行は次のようになります。Pythonのテキストファイルの複数の行から特定の2つの数値を抽出する方法
12:34:56.789 78:90:12.123123123 BLAH_BLAH blahblah : LAT #1 MEAS=-80[deg], LAT #2 MEAS=-110[deg] blah_BlHaBKBjFkjsa.c
私は必要な数字は「LAT #1 MEAS=-80[deg]
」と「LAT #2 MEAS=-110[deg]
」とのものです。したがって、基本的に-80
と-110
です。
残りのテキストは重要ではありません。
08:59:07.603 08:59:05.798816 PAL_PARR_INTF TraceModule GET [email protected] :82 drv_Shm.c (../../../PALCommon/Platform_EV/HAL/Common/driver/Shm/src) 525
08:59:07.603 08:59:05.798816 PAL_PARR_INTF TraceModule xdma is not running drv_Shm.c (../../../PALCommon/Platform_EV/HAL/Common/driver/Shm/src) 316
08:59:07.603 08:59:05.798847 PAL_PARR_INTF TraceModule DMA is activated drv_Shm.c (../../../PALCommon/Platform_EV/HAL/Common/driver/Shm/src) 461
08:59:10.847 08:59:09.588001 UHAL_SRCH TraceFlow : LAT #1 MEAS=-80[deg], LAT #2 MEAS=-110[deg] uhal_CHmcpPschMultiPath.c (../../../HEDGE/UL1/UHAL_3XX/Searcher/Code/Src) 1596
08:59:11.440 08:59:10.876819 UHAL_COMMON TraceWarning cellRtgSlot=0 cellRtgChip=1500 CELLK_ACTIVE=1 boundary RSN 232482 current RSN 232482 boundarySFN 508 currentSFN 508 uhal_Hmcp.c (../../../HEDGE/UL1/UHAL_3XX/platform/Code/Src) 2224
08:59:11.440 08:59:10.877277 UHAL_SRCH TraceWarning uhal_HmcpSearcherS1LISR: status_reg(0xf0100000) uhal_CHmcpPschMultiPath.c (../../../HEDGE/UL1/UHAL_3XX/Searcher/Code/Src) 1497
08:59:11.440 08:59:10.877307 UHAL_COMMON TraceWarning uhal_HmcpSearcherSCDLISR is called. uhal_CHmcpPschMultiPath.c (../../../HEDGE/UL1/UHAL_3XX/Searcher/Code/Src) 1512
08:59:11.440 08:59:10.877338 UHAL_SRCH TraceFlow : LAT #1 MEAS=-78[deg], LAT #2 MEAS=-110[deg] uhal_CHmcpPschMultiPath.c (../../../HEDGE/UL1/UHAL_3XX/Searcher/Code/Src) 1596
今、私はファイルを開いて、これらの値を取得するためのコードを使用していますが、それは動作しません。ここで
は、入力ファイルからのサンプルテキストです。 私はプログラミングに慣れていないので、どこに間違っているのか分かりません。import re
# Importing 're' for using regular expressions
file_dir=raw_input('Enter the complete Directory of the file (eg c:\\abc.txt):') # Providing the user with a choice to open their file in .txt format
with open(file_dir, 'r') as f:
lat_lines= f.read() # storing the data in a variable
# Declaring the two lists to hold the numbers
raw_lat1 = []
raw_lat2 = []
start_1 = 'LAT #1 MEAS='
end_1 = '[de'
start_2 = 'LAT #2 MEAS='
end_2 = '[de'
x = re.findall(r'start_1(.*?)end_1',lat_lines,re.DOTALL)
raw_lat1.append(x)
y = re.findall(r'start_2(.*?)end_2',lat_lines,re.DOTALL)
raw_lat2.append(y)
お返事ありがとうございます。 私はそれを試しましたが、それは私に空のリストを与えます。 「回答」リストを印刷すると、[]、[]、[]、[]、[]、[]、[]、[] –
@uddinM:元の投稿を編集して、入力ファイルのサンプルを含めて、正しくテストできるようにしてください – inspectorG4dget
質問にサンプルを追加しました。 –