首页 > 解决方案 > 打开大 CSV 文件,删除一行,然后保存副本

问题描述

我想在 Python 中打开一个大的 CSV 文件(~2GB),分隔符为“;”(分号和空格),搜索特定单词,如果它出现在一行中以删除整行。虽然我可以执行上述过程,但当我尝试保存 .CSV 文件时,分隔符会发生变化,我无法将“自定义”分隔符设置为“;”。更改分隔符不是一种选择。

标签: pythoncsvdelimiter

解决方案


您可以使用 bash shell 来执行此操作(如果加载 2GB 文件是一个问题)。

以下表达式使用正则表达式\\bYOUR_WORD\nn(将 YOUR_WORD 替换为您的特定单词)并将在没有该条件的情况下创建一个新文件。

此外,这不会消耗大量 RAM。这可能需要一些时间,具体取决于行数。

while read line; do [[ $line =~ \\bYOUR_WORD\\b ]] || echo $line; done <  file.csv > newfile.csv

推荐阅读