我有三个巨大的文件,只有2列,我需要两个.我想将它们合并到一个文件中,然后我可以将其写入SQLite数据库.
我使用Python并完成了工作,但是花了大约30分钟,我的系统还挂了10个.我想知道是否有更快的方法使用awk或任何其他unix工具.Python中更快的方式也会很棒.代码如下:
'''We have tweets of three months in 3 different files.
Combine them to a single file '''
import sys, os
data1 = open(sys.argv[1], 'r')
data2 = open(sys.argv[2], 'r')
data3 = open(sys.argv[3], 'r')
data4 = open(sys.argv[4], 'w')
for line in data1:
data4.write(line)
data1.close()
for line in data2:
data4.write(line)
data2.close()
for line in data3:
data4.write(line)
data3.close()
data4.close()
Run Code Online (Sandbox Code Playgroud)
rjm*_*nro 13
合并文件的标准Unix方法是cat
.它可能不是太多快,但它会更快.
cat file1 file2 file3 > bigfile
Run Code Online (Sandbox Code Playgroud)
您可以cat
直接使用sqlite ,而不是制作临时文件
cat file1 file2 file3 | sqlite database
Run Code Online (Sandbox Code Playgroud)
在python中,如果以块而不是行复制文件,则可能会获得更好的性能.使用file.read(65536)
一次读取64K的数据,而不是通过与文件迭代for
归档时间: |
|
查看次数: |
3513 次 |
最近记录: |