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()采用大小参数:

从文件中读取最大大小的字节(如果在获取 size 字节之前读取命中 EOF,则更少)。如果size参数为负数或省略,请读取所有数据,直到达到 EOF。

您可以在循环中使用它,与 iter() 函数结合使用(将第二个参数设置为''作为哨兵),并functools.partial()提高效率:

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

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

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

如果您已经尝试read(1000)并返回空字符串,则您的文件当时已经在EOF中。

最新更新