python文本解析与拆分

2024-05-01 23:35:00 发布

您现在位置:Python中文网/ 问答频道 /正文

我使用python从web页面获取文本文件,如下所示。我抓取的数据包括我不需要的额外数据。我只需要粗体部分。我还需要把粗体部分分开。你能帮我吗所以,在一个图像,还有红色部分是我试图从数据中提取的。在

[
  '\n249\nSRUS54 KFWD 051849\nRR5FWD\n:\n: 
  ALERT HOURLY ACCUMULATOR DATA\n: 
  NATIONAL WEATHER SERVICE FORT WORTH TX\n:
  **1249 PM CST SUN MAR 5 2017**\n:\n: 
  HOURLY ACCUMULATOR INFORMATION TABLE\n:\n: 
  NOTE:  ERRONEOU        S REPORTS MAY BE RECEIVED UNDER CERTAIN\n:
          WEATHER CONDITIONS\n:\n:
 **********************************************************\n:
 ID    LOCATION                  ACCUMULATOR VALUE\n:
 **********************************************************\n:
 **CITY OF DALLAS ALERT SYSTEM**
 \n**.A DCQT2 170305 C DH124216 /HGIRS 
 396.7**:
 \n\n**.A DCVT2 170305 C DH123434 /HGIRS 516.8**:
 \n\n**.A DAOT2 170305 C DH123721 /HGIRS 534.2**:\n\n**.A DDCT2 
 170305 C DH120338 /HGIRS 395.0**:\n\n**.A DAHT2 170305 C DH114758 /HGIRS 
 496.1**:\n\n\n\n']

This is an image of the data I grab from the web

^{pr2}$

Tags: the数据图像web页面alertweatherhourly
2条回答

在python3中,您可以尝试以下操作:

import urllib.request
import re
htmlfile=urllib.request.urlopen("http://forecast.weather.gov/product.php?site=NWS&issuedby=FWD&product=RR5&format=CI&version=1&glossary=0")
htmltext=htmlfile.read()
regex='<pre class="glossaryProduct">(.+?)</pre>'
pattern=re.compile(regex,re.S)
out=re.findall(pattern, htmltext.decode())

print("7'th line:", out[0].split('\n')[7])
print(out[0].split('\n')[17])

# print all the lines
for line in out[0].split('\n'):
    print(line)

NOAA数据的格式通常非常有规律。最好的方法是将输入分成单独的行,然后逐行循环。在

跳过行,除非它们以你感兴趣的短语或关键字开头。例如:

for line in text.split('\n'):
    if any([re.match('^: [0-9]{4} [AP]M', line),   # matches : 1249 PM
            line.startswith(': CITY OF'),          # CITY OF...
            line.startswith('.A D')]):             # .A D....
    saveFile.write(line)

(您需要根据实际的、可能的行值修改上面的内容。)

相关问题 更多 >