从许多文本文件中快速删除前n行

Sam*_*dis 3 python performance file-io sed

我需要通过删除输入文件的前两行来创建输出文本文件.

目前我正在使用sed"1,2d"input.txt> output.txt

我需要为成千上万的文件执行此操作,因此使用python:

import os
for filename in somelist:
  os.system('sed "1,2d" %s-in.txt > %s-out.txt'%(filename,filename))
Run Code Online (Sandbox Code Playgroud)

但这很慢.

我需要保留原始文件,所以我无法进行到位.

有没有办法更快地做到这一点?使用除sed以外的东西?也许使用一些其他脚本语言而不是python?是否值得编写一个简短的C程序,或者文件写入磁盘访问是否可能成为瓶颈?

Cas*_*bel 9

使用tail.怀疑任何事情都可能明显加快:

tail -n +3 input.txt > output.txt
Run Code Online (Sandbox Code Playgroud)

将它包裹在您选择的循环中.但我真的怀疑sed慢一点 - 正如你所说,磁盘i/o通常是最终的瓶颈.