更新文件中的行而不使用第二个文件

时间:2012-09-27 18:42:20

标签: python csv

我正在尝试更新文件,但只有某些行。有很多行,我不想重写整个文件来更新它。 防爆。超出4k线我需要更改第n项中的5项

此问题的大多数答案都使用两个文件或完全重写。我想知道是否有一个更有效的命令,一个可以一次攻击一行而不在整个过程结束时写入整个文件。如果没有可能的方法,最有效的方法是什么。

我使用的是Python 2.7

1 个答案:

答案 0 :(得分:0)

问题是,磁盘上的文件只是 bytes 的序列。而不是智能存储的序列。 也就是说,您可以更改文件中的第n行,当且仅当它包含的字节数在该操作之后保持不变。

如果你的csv格式允许包含任意数量的无关紧要的空格作为这些行的一部分,你可以使它们足够大以容纳你可能写入的任何数据(比如一个固定的大到足够大的行)。然后,您可以更新单行而无需重写整个文件。但是,您需要确保覆盖以前的内容(如果有的话)。