[Python] dati da socket - lettura riga per riga

Luca Zucchelli tiratenefuori a gmail.com
Gio 26 Nov 2015 22:21:10 CET


ciao a tutti

stavo provando ad estrarre informazioni da dati ottenuti tramite socket.

se faccio print dei dati che ottengo tutto è perfetto ma quando tento di
estrarre i dati sembra che questi non siano come me li aspetto (cioè in
righe di caratteri).

Io uso i dati come se aprissi un file e lo leggessi riga per riga (forse è
quì che sbaglio), invece mi legge carattere per carattere, ma non saprei
come altro fare. Mi date qualche spunto su cosa cercare perchè non riesco a
trovare niente di utile, sulla documentazione di python usano repr(data) ma
non ho ottenuto i risultati che speravo.

Forse dovrei fare un loop fino al carattere di fine riga e salvare in una
lista, ma è il modo corretto di farlo?

questo è il mio codice:

#http://www.pythonlearn.com/code/intro-short.txt

import socket
import re

mysock = socket.socket(socket.AF_INET,socket.SOCK_STREAM)
mysock.connect(('www.pythonlearn.com', 80))
mysock.send ('GET http://www.pythonlearn.com/code/intro-short.txt
HTTP/1.0\n\n' )
d = ''

#Receive data from the socket. The return value is a bytes object
representing the data received
while True:
    data = mysock.recv(512)
    if (len(data)<1):
        break
    d += data
print(d)

stringdata = d.decode('utf-8')
print(stringdata)
for line in stringdata:
    print(line)
    matchLast = re.findall('^Last-Modified: (.+)', line)
    print(matchLast)       # i dati che cerco

mysock.close()

grazie
Luca
-------------- parte successiva --------------
Un allegato HTML è stato rimosso...
URL: <http://lists.python.it/pipermail/python/attachments/20151126/8dbea89d/attachment.html>


Maggiori informazioni sulla lista Python