gpt4 book ai didi

python - Python 的 "append"文件写入模式是只写入新字节,还是重写整个文件?

转载 作者:行者123 更新时间:2023-12-04 08:30:07 27 4
gpt4 key购买 nike

虽然我认为追加模式足够“智能”,只能插入要追加的新字节,但我想绝对确保 Python 不会通过重写整个文件和新字节来处理它。
我正在尝试保留程序日志的运行备份,它可以达到 CSV 格式的数千条记录。

最佳答案

Python 文件操作是操作系统文件操作的便捷包装器。操作系统要么在内部实现此文件系统操作,要么将它们转发到可加载模块(插件)或外部服务器(NFS、SMB)。自 1971 年以来的大多数操作系统都能够将数据附加到现有文件中。至少所有声称甚至远程兼容 POSIX 的人。
POSIX 追加模式只是打开文件进行写入并将文件指针移动到文件末尾。这意味着所有的写操作都只会写到文件末尾。
可能有一些异常(exception),例如某些例程可能使用低级系统调用来向后移动文件指针。或者,底层文件系统可能不兼容 POSIX,并使用某种形式的对象事务存储,如 AWS S3。但是对于任何标准情况,我都不会担心这种情况。
但是,由于您提到备份作为您的用例,您需要格外小心。备份并不像表面上看起来那么容易。需要担心的事情是,如果将数据写入磁盘之前可能会将数据保存在内存中的各种缓存。如果在您添加新记录后立即断电,会发生什么情况。另外,如果有人启动了您的程序的多个副本,会发生什么?
最后一件事。除非您在 1980 年代的 8 位计算机上运行,​​否则几千 CSV 行对于现代硬件来说不算什么。即使文件被加载并写回,您也不会注意到任何差异

关于python - Python 的 "append"文件写入模式是只写入新字节,还是重写整个文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65067610/

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