Python urllib响应返回添加了空行的文件

时间:2015-05-22 10:12:29

标签: python xml httprequest response urllib

在测试服务时,我在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()

此函数应调用request并返回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等)中打开它。是否有可能强迫

1 个答案:

答案 0 :(得分:1)

你可以试试这个:

...
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)
...

如果您愿意,这是一种功能性的风格。