0

我想删除(删除)csv 文件中的特定行。但是有一些条件。

1.) File can't be buffered in memmory, becuse of it's size (1GB+)
2.) File MUST NOT be "touched" (rewriting file) 

我的工作只是删除 csv 文件中的一些行,而不更改任何其他行 - 非常重要,因为编码并将过滤后的 csv 文件发送到打印该文件的公司。

有解决办法吗?

谢谢!

4

3 回答 3

2

这是不可能的。您想从文件中删除内容,而不进行修改。这些是相互排斥的。

于 2013-08-27T12:29:54.080 回答
0

您可以尝试使用 mmap 接口将行字节替换为空格字符。

于 2013-08-27T12:43:47.620 回答
0

您可以使用“touch -t”创建旧时间戳。有关更多详细信息,请参见“触摸”的手册页。

touch -t 200510071138 old.dat

只要确保你写下原始时间戳!

为了删除行,您可以使用“grep -v”,它会打印除搜索词之外的所有内容。

grep -v baddata old.dat > new.dat

要使用 python 进行修改,我们需要文件的一些特定细节。

于 2013-08-27T13:16:07.747 回答