Python 2.7:在线阅读文本文件到字符串并打印输出

时间:2017-01-04 12:45:31

标签: python-2.7

我正在阅读此链接中的数据:http://www.weerindelft.nl/clientraw.txt

主要目标是打印温度http://www.weerindelft.nl显示。我发现它在那个文本文件中,所以我只需要打印出文件的右边部分。

这是我的代码:

import socket
from decimal import Decimal

s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)                 
s.connect(("www.weerindelft.nl" , 80))
s.sendall("GET http://www.weerindelft.nl/clientraw.txt HTTP/1.0\n\n")
write = s.recv(1427247693)
variable_1 = str(write[311:])
integer = float(variable_1[46:50])
tim = round(integer,0)
print Decimal(tim)
f = open("output.txt", "w")
f.write(write)
f.close
s.close()

这是我的输出:

HTTP/1.1 200 OK

Date: Wed, 04 Jan 2017 12:34:14 GMT

Server: Apache

Last-Modified: Wed, 04 Jan 2017 12:34:12 GMT

Vary: Accept-Encoding

Content-Type: text/plain

X-Varnish: 110069959 109349321

Age: 32

Via: 1.1 varnish (Varnish/5.0)

ETag: W/"b173bdaf-2fb-54544008156e2"

Accept-Ranges: bytes

Content-Length: 763

Connection: close

12345 7.0 7.8 318 5.4 85 1016.9 1.0 4.2 4.2 0.014 0.086 18.7 38 100.0 34 0.0 0 0 0.2 -100.0 255.0 -100.0 -100.0 -100.0 -100.0 -100 -100 -100 13 20 58 WeerinDelft-13:20:58 2 100 4 1 100 100 100 100 100 100 100 2.6 4.0 8.0 5.1 34 zonnig/Gestopt_met_regenen 0.2 4 4 4 7 5 5 8 6 6 5 6 6 4 4 4 4 5 6 9 8 30.4 3.0 949.9 4/1/2017 7.5 3.6 6.0 0.9 0.5 14 12 10 12 7 11 8 5 6 10 6.8 6.9 6.7 6.5 6.4 6.5 5.7 5.3 5.1 5.3 0.8 0.8 0.8 0.8 0.8 0.8 0.8 1.0 1.0 1.0 8.0 5.1 5.4 18.2 0 13:09:41 2017/04/01 326 522 91 -100.0 -100.0 5 0 0 0 0 102.0 18.9 18.7 4.7 1017.2 1014.5 24 12:40 10:35 6.1 0.8 6.2 1.5 15 2017 -13.9 -1 1 -1 341 336 336 309 331 358 336 318 310 318 10.0 255.0 7.5 4.4 51.97944 -4.34139 0.6 90 66 1.0 10:46 0.0 0.0 0.0 0.0 0.0 0.0 249.8 05:47 13:11 !!C10.37S13!! 

之前我曾经使用过请求,它就像一个魅力。不幸的是,分配是使用套接字模块。我想我知道问题在哪里但不能解决问题。我需要摆脱HTTP代码和信息,只是能够读取文件,以便我可以打印出正确的部分。因为在这个时刻运行这个脚本只会成功几次,因为文本文件正在转移,我的脚本正在关注:

integer = float(variable_1[46:50])

这部分文本文件/字符串。

我希望你们明白我的意思。如果这篇文章有一些缺陷,我提前道歉。它是我的第一个,我对编程很新。

提前致谢。

1 个答案:

答案 0 :(得分:0)

HTTP响应使用空行分隔标题和内容。 所以你可以使用

write.split('\r\n\r\n', 1)[1]

去掉HTTP代码和信息,只提取响应的内容。