我有一个非常大的CSV文件,大小为35GB,包含1.09B行和三列,其中两列是字符串,用引号括起来,其中一列是双引号,周围没有引号。由于尺寸太大,无法在记事本上打开进行编辑。有没有一种方法可以通过命令行传递这个文件,无论是python,还是其他方法,在第三列周围添加引号,或者从前两列中删除引号?
例如
"zip1"zip2";,英里"00601"10394〃;,2593.34
我想删除前两条记录中的引号,或者在第三条记录中添加引号。一旦通过fastload导入,我稍后将添加float列,并从第三列执行更新,该列将在加载期间强制作为字符。
尝试基于convtools的解决方案,将引号添加到第三列。以下应将文件作为流处理:
import csv
from convtools import conversion as c
from convtools.contrib.tables import Table
Table.from_csv("input.csv", header=True).update(
miles=c.col("miles").as_type(str)
).into_csv(
"output.csv", dialect=Table.csv_dialect(quoting=csv.QUOTE_NONNUMERIC)
)