1
回答
python数据生成代码优化
利用AWS快速构建适用于生产的无服务器应用程序,免费试用12个月>>>   

最近公司要生成一些模拟数据,之前的数据生成工具不能满足现在的要求,所以就用python写了一个简单的数据生成工具。

生成的数据要求,SBNID-MEID-CELLID三列共同组成一个对象位置,按如下编码支持10万小区的测试 【10*2000*5=100000】,SBNID列取值范围为1~10,MEID列取值范围为1~2000,CELLID列取值范围为1~5,其他字段为固定或随机值。

由于接触python时间不长,写出来的生成工具生成十万条需要71秒左右,麻烦各位大大给看看这段代码怎么能优化一下。

#!/usr/bin/python
import random,sys

time=sys.argv[1]
timestamp=sys.argv[2]
flag=sys.argv[3]

if flag == "m":
    filename="/opt/data/a_l_cell_erab_stat_m/a_l_cell_erab_stat_"+str(timestamp)+"_m.dat"
    GRANULARITY=900
    STATUS=1
if flag == "h":
    filename="/opt/data/a_l_cell_erab_stat_h/a_l_cell_erab_stat_"+str(timestamp)+"_h.dat"
    GRANULARITY=3600
    STATUS=4
if flag == "d":
    filename="/opt/data/a_l_cell_erab_stat_d/a_l_cell_erab_stat_"+str(timestamp)+"_d.dat"
    GRANULARITY=86400
    STATUS=96

file=open(filename,"a")

for SBNID in range(1,11):
    for MEID in range(1,2001):
        for CELLID in range(1,6):
            data=[str(time)]
            data.append(str(time))
            data.append(str(28800000))
            data.append(str(0))
            data.append(str(GRANULARITY))
            data.append(str(STATUS))
            data.append(str(1))
            data.append(str(random.randint(1,1000)))
            data.append(str(random.randint(1,1000)))
            data.append(str(SBNID))
            data.append(str(MEID))
            data.append(str(CELLID))
            for i in range(1,385):
                data.append(str(random.randint(0,1000)))
            data.append(str(0))
            data.append(str(1))
            data='|'.join(data)+"\n"
            #print data
            file.write(data)
file.close()




举报
舒文晖
发帖于2年前 1回/236阅
顶部