У меня есть очень большой текстовый файл, который, скажем, измерения широты от 2 GPS-антенн. В файле много мусора, и мне нужно извлечь из него измерения широты. Они всегда встречаются иногда между другими строками другого текста. линия, в которой они происходят, как выглядит:Как извлечь два конкретных числа из нескольких строк текстового файла в python
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
Добавлен образец вопроса. –