gpt4 book ai didi

python - python 文本文件中 'r+' 模式下的意外读/写行为

转载 作者:行者123 更新时间:2023-11-28 16:59:12 24 4
gpt4 key购买 nike

我试图通过将它打开到 r+ 模式来在 python 文本文件中执行读取和写入操作。但是,无论我在执行写操作之前读取了多少个字符(比如'fo.read(5)')(比如'fo.write(“随机” )'),文本被写入/附加在文件的末尾。

fo = open("C:/Users/Dell/Desktop/files/new.txt",'r+')
fo.read(5)
fo.write('random')
fo.close()

我希望正在写入的文本(本例中为“随机”)从第 6 个字符开始写入,但在文本文件的末尾写入/附加。这种行为的可能解释是什么?

最佳答案

这看起来确实像一个错误。

解决方法是在写入之前明确查找当前文件位置:

fo = open("C:/Users/Dell/Desktop/files/new.txt",'r+')
fo.read(5)
fo.seek(fo.tell())
fo.write('random')
fo.close()

编辑:如@Blckknght 所述,这是一个源于 Windows C 级实现的已知问题。可以引用Beginner Python: Reading and writing to the same file用于引用和讨论,尽管该链接问题与 Python 2 有关,其中相同代码的行为不同(写入要么不执行任何操作,要么产生 OSError)。

关于python - python 文本文件中 'r+' 模式下的意外读/写行为,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55539987/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com