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)
...
这是一个有点实用的风格,如果你喜欢的话。
在测试服务时,我在 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)
...
这是一个有点实用的风格,如果你喜欢的话。