python读取doc文件 语义识别_我可以让socket.makefile具有与常规文件相同的读取语义吗?...

Python的文件对象read方法允许指定最大返回字节数,但在使用socket.makefile时,read方法会阻塞直到达到指定字节数,即使数据已经可用。文章通过示例展示了如何使用socket.recv实现类似文件对象的读取行为,并探讨了Python 3.2版本中可能的改进。
摘要由CSDN通过智能技术生成

Python文件对象有一个read方法,它接受一个可选的size参数,这个参数基本上是要返回的最大字节数。例如:fname = "message.txt"

open(fname, "w").write("Hello World!")

print open(fname).read() # prints the entire file contents

print open(fname).read(5) # print "Hello"

print open(fname).read(99) # prints "Hello World!"

因此,即使我们的文件少于99个字符,对read(99)的调用也会立即返回所有可用数据。

我想对从socket.makefile返回的文件对象执行此行为。但如果我说:import socket

ADDR = ("localhost", 12345)

listener = socket.socket(socket.AF_INET, socket.SOCK_STREAM)

listener.bind(ADDR)

listener.listen(1)

client = socket.create_connection(ADDR)

cf = client.makefile("r+b", bufsize=0)

server, client_addr = listener.accept()

sf = server.makefile("r+b", bufsize=0)

sf.write("Hello World!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值