ungetc在Python中

2 python readline ungetc readlines

Python中的某些文件读取(readlines())函数
将文件内容复制到内存中(作为列表)

我需要处理一个太大而
无法复制到内存中的文件,因此需要使用
文件指针(一次一个字节地访问文件
) - 就像在C getc()中一样.

我的附加要求是
我想将文件指针倒回到前面的
字节,就像在C ungetc()中一样.

有没有办法在Python中执行此操作?

另外,在Python中,我可以
使用readline()一次 读取一行

有没有办法读取前一行
后退?

Mik*_*ham 5

  • 你不需要Python没有或不想要的文件指针.

  • 要逐行浏览文件而不将整个内容读入内存,只需遍历文件对象本身,即

     with open(filename, "r") as f:
         for line in f:
             ...
    
    Run Code Online (Sandbox Code Playgroud)

    使用readlines一般是被避免.

  • 回到一条线不是你可以超级轻松做的事情.如果您不需要返回多行,请查看文档中pairwise配方.itertools