ソケットをファイルのように読み取る

Pythonでソケット通信するとき
ソケットオブジェクト.recv(受信バイト数)
とすると受信できるみたいなんだけど、行単位で処理しようとすると何かと不便を感じたので調べたらあった。

import socket
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
s.connect((host, port))
s.send(....)

s.recv(1024)

# ファイルオブジェクトを作成
sf = s.makefile()

# 1行読み取る場合
sf.readline()

# 1行ずつ処理する場合
for line in sf.readlines():
    ....

# 全部読み取る場合
sf.read()