python-3.x 在StringIO()上调用seek()方法后写入文本

omvjsjqw  于 2023-10-21  发布在  Python
关注(0)|答案(1)|浏览(136)
from io import StringIO
def pratcise():
    intro = StringIO()
    x = "I study in class 10 and I love Python\n"
    intro.write(x)
    intro.seek(0)

    y = "My name is Prem Singh\n"
    intro.write(y)
    print(intro.getvalue())

if __name__ == "__main__":
    pratcise()

我有一个StringIO对象,我在里面写了一些数据,然后我需要在它的开头写一些其他的数据,但是当我通过seek改变位置并写其他数据时,第一个数据已经丢失了。

  • 输出=“我的名字是Prem Singh\nnd我爱Python”
  • 我叫Prem Singh,我在10班学习,我喜欢Python。
zfciruhq

zfciruhq1#

实际上有几种方法可以实现这一点,但正如其中一条评论所正确指出的那样,它不会有效(对于大数据),因为代码会将所有数据推到一行(这就是文件的工作方式)。
以下是其中一个(几个例子):

with open('file.txt', 'r') as f:
  lines = f.readlines()

lines.insert(0, 'new line\n') 

with open('file.txt', 'w') as f:
  f.writelines(lines)

这将工作的小文件.

相关问题