Python urllib 响应 returns 文件添加了空行

Python urllib response returns file with added blank lines

在测试服务时,我在 python 中创建了一个函数,该函数调用访问点 URL 上的 http 请求。响应保存到给定路径中的文件。

import urllib.request
import urllib.response
import urllib.parse


def get_response(service_access_point, request_parameters, response_file_path):
    req = urllib.request.urlopen(service_access_point.format(request_parameters))
    res = req.read().decode('utf-8')
    response_file = open(response_file_path, 'w')
    response_file.write(res)
    response_file.flush()
    response_file.close()

此函数应调用请求和return xml 文件。它确实如此,但在每两行之间添加了一个新的空行。

<FeatureCollection timeStamp="2015-05-21T17:44:24" numberMatched="1637" numberReturned="1637" xmlns="http://www.opengis.net/wfs/2.0">

 <boundedBy>

   <Envelope srsName="urn:ogc:def:crs:EPSG::5514" srsDimension="2">

      <lowerCorner>-559647.09 -1108439.9</lowerCorner>

      <upperCorner>-555782.49 -1104336.04</upperCorner>

   </Envelope>

</boundedBy>

<member>

  <Address gml:id="AD.16238842">
     ...
  </Address>

</member>  

在这种形式下,无法验证文件或在某些程序(GIS 等)中打开它。是否可以强制

你可以试试这个:

...
res = req.read().decode('utf-8')
res = "".join(filter(str.strip, res.split('\n'))) # remove blank lines
response_file = open(response_file_path, 'w')
response_file.write(res)
...

这是一个有点实用的风格,如果你喜欢的话。