我想删除(删除)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 文件发送到打印该文件的公司。
有解决办法吗?
谢谢!
这是不可能的。您想从文件中删除内容,而不进行修改。这些是相互排斥的。
您可以尝试使用 mmap 接口将行字节替换为空格字符。
您可以使用“touch -t”创建旧时间戳。有关更多详细信息,请参见“触摸”的手册页。
touch -t 200510071138 old.dat
只要确保你写下原始时间戳!
为了删除行,您可以使用“grep -v”,它会打印除搜索词之外的所有内容。
grep -v baddata old.dat > new.dat
要使用 python 进行修改,我们需要文件的一些特定细节。