我编写了一个很好的sql-to-csv表达式(见下文),它可以处理mysqldump数据的格式。你知道吗
但是,我想浏览非常大的文件,可能太大而无法放入内存。输入可以是[gb]压缩的,并且不包含换行符。理想情况下,我希望能够处理从网络位置读入的输入数据,而不是先下载然后从磁盘上读取文件。你知道吗
如何在像对象这样的文件上运行regex或使用分块读取?你知道吗
def sql2csv(buf):
rowmatcher = re.compile(r"""
(?<=\()
(?:
(?:
-?\d+(?:\.\d+)?
|NULL
|'(?:[^'\\]|\\')*'
)
(?:,|(?=\)))
)+
(?=\)[,;])
""", re.X)
return (
[r.decode('string_escape').decode('utf8') for r in row]
for row in csv.reader(
(x.group(0) for x in rowmatcher.finditer(buf)),
quotechar="'", escapechar='\\', doublequote=False))
像这样的可能?你知道吗
其中
do_stuff
执行作业并返回''
,从而从缓冲区中删除已处理的内容相关问题 更多 >
编程相关推荐