在 python 中实现这个 awk 命令的最佳 Pythonic 方式是什么?
awk 'BEGIN{chunk=0} /^From /{msgs++;if(msgs==500){msgs=0;chunk++}}{print > "chunk_" chunk ".txt"}' mbox
我现在用它来分割巨大的邮箱(mbox 格式)文件。
我现在正在尝试一种递归方法。
def chunkUp(mbox, chunk=0):
with open(mbox, 'r') as bigfile:
msg = 0
for line in bigfile:
if msg == 0:
with open("./TestChunks/chunks/chunk_"+str(chunk)+".txt", "a+") as cf:
if line.startswith("From "): msg += 1
cf.write(line)
if msg > 20: chunkUp(mbox, chunk+1)
我希望能够在 python 中实现这一点,并且如果它被中断能够恢复进度。现在正在处理那一点。
我正在把我的大脑打成结!干杯!