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程序,或者文件写入磁盘访问是否可能成为瓶颈?
使用tail
.怀疑任何事情都可能明显加快:
tail -n +3 input.txt > output.txt
Run Code Online (Sandbox Code Playgroud)
将它包裹在您选择的循环中.但我真的怀疑sed慢一点 - 正如你所说,磁盘i/o通常是最终的瓶颈.