加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Python > 正文

python一次读1000直到文件结束?

发布时间:2020-12-20 11:30:57 所属栏目:Python 来源:网络整理
导读:我一直在研究一个将信息发送到服务器的 python项目,虽然我发现了一些很好的代码来读取文件并发送它,但我只能立即发送整个文件.我希望能够一次读取1000个字符,然后循环直到文件结束.我确信这很容易,但我不确定在哪里改变我一直在做的事情来实现它.这也可能是
我一直在研究一个将信息发送到服务器的 python项目,虽然我发现了一些很好的代码来读取文件并发送它,但我只能立即发送整个文件.我希望能够一次读取1000个字符,然后循环直到文件结束.我确信这很容易,但我不确定在哪里改变我一直在做的事情来实现它.这也可能是由于对阅读方法不熟悉,但我正在研究它,而不是找到任何已经为我澄清的信息.这就是我正在使用的:

with open(localFileTT,'rb',0) as f: #open the file 
    for fstr in f:
        str.encode(fstr)
        print(fstr)
        if 'str' in fstr:
            break

我还没有在这段代码中引入网络功能,因为它只是一个测试材料,可以确定如何一次只读取1000个.它当然能够很好地读取整个部分,但我不知道如何更改它以便一次只读取部分.我会尝试添加read(1000),但打印空虚!我不确定这里读到的确切位置,不幸的是,到目前为止,我在网上阅读的这些代码的部分内容(例如with)没有任何帮助.如果有人能指出我正确的方向,那么我将非常感激.

解决方法

file.read()采用大小参数:

Read at most size bytes from the file (less if the read hits EOF before obtaining size bytes). If the size argument is negative or omitted,read all data until EOF is reached.

你可以在循环中使用它,结合iter() function(第二个参数设置为”作为哨兵),和functools.partial()效率:

from functools import partial

with open(localFileTT,0) as f:
    for chunk in iter(partial(f.read,1000),''):
        # chunk is up to 1000 characters long

另一种方法是使用while循环:

with open(localFileTT,0) as f:
    while True:
        chunk = f.read(1000)
        if not chunk:
            # EOF reached,end loop
            break
        # chunk is up to 1000 characters long

如果你已经尝试过读取(1000)并且返回一个空字符串,那么你的文件当时已经在EOF了.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读