我有一个大约有12万行的文件,每行看起来像这样:
0701648016480002020000002030300000200907242058CRLF
我想要完成的是在数据之前添加行号,数字应该有固定的长度。
这背后的想法是能够将此文件批量插入到SQLServer表中,然后使用它执行某些操作,这些操作要求每行具有唯一标识符。我已经尝试过在数据库方面这样做,但是我没能达到良好的性能(至少在4'以下,在1以下是理想的)。
现在我正在尝试使用类似这样的python解决方案。
file=open('file.cas', 'r')
lines=file.readlines()
file.close()
text = ['%d %s' % (i, line) for i, line in enumerate(lines)]
output = open("output.cas","w")
output.writelines(str("".join(text)))
output.close()
我不知道这是否会起作用,但它会帮助我在继续尝试新事物之前了解它的表现和副作用,我也认为在C中这样做我有一个更好的记忆控制。
用低级语言帮助它吗?有没有人知道更好的方法来做到这一点,我很确定它已经完成,但我找不到任何东西。
感谢
答案 0 :(得分:4)
file = open('file.cas', 'r')
try:
output = open('output.cas', 'w')
try:
output.writelines('%d %s' % tpl for tpl in enumerate(file))
finally:
output.close()
finally:
file.close()
使用生成器表达式,该表达式一次处理一行文件。
答案 1 :(得分:2)
你为什么不试试猫-n?
答案 2 :(得分:2)
斯特凡诺是对的:
$ time cat -n file.cas> output.cas
使用时间只是为了看看速度有多快。它会比python更快,因为cat是纯C代码。