场景: 你在国内上线一款游戏成熟后, 想在美国上线该游戏, 原来的数据分析流程或者入库数据可能是根据一个字典表进行的,那么这时候你只需要将该表的国内游戏数据部分相关字典调整为美国再重新插入表即可。
本例以动物举例,类似游戏:假设将国内的北京动物园迁到美国纽约
当前表数据:
执行后:
程序清单:
#!/usr/bin/env python
import os
import re
insert_sql="""mysql example -Ne "insert into animal values('%s','%s','%s','%s');" """;
select_sql="""mysql example -Ne "select * from animal;" """;
f = os.popen(select_sql)
items=[]
for line in f:
line=line.replace('china','American')
line=line.replace('beijing','NewYork')
items = line.split()
# print "name:%s\ttype:%s\tlocate:%s\tcountry:%s" % (items[0],items[1],items[2],items[3])
os.popen(insert_sql % (items[0],items[1],items[2],items[3]))
f.close()
print "table animal now have records:"
o = os.popen(select_sql)
for line in o:
print line,
只是简单的测试一下结果,其实可以增强功能,比如根据命令行参数来给出替换国家、区域; 从一个文件读取进行插入(插入前进行表判定,若已存在则不再插入,若想替换旧版本可增加"--"选项进行);与程序交互替换插入等等......