第一个python程序
版本上线,有个洗数据的流程。
根据一个文件,把sql生成出来。
习惯了利用php,非常简单的几句代码就写出来。因为没写过python,就想用py写下,虽然没啥技术含量,也就当练习下。
原文件格式如下:
30001,BACDH4510130001,BACHXZ5101
30002,BACJD45101
30003,BACTG45101
30003,BAGLP45101
30004,BAYXJ45101
30004,BFAKJ41101
30005,BFBDZ41102
30005,BFBDZ41119
...
...
...
php 代码:
$data = file_get_contents("flushdata.log");$arr = explode(PHP_EOL, $data);
foreach ($arr as $item){
$items = explode(',', $item);
if($tagc = $items[0]){
$temp[$tagc][] = $items[1];
}
}
$str = '';
foreach ($temp as $key => $val){
$ins = "'".implode("','", $val)."'";
$str .= "update list set tag=". $key. " where mid in (". $ins. ");".PHP_EOL;
}
file_put_contents("flushdata_php.sql", $str);
py代码:
1 #! /usr/bin/python2
3 file_object = open('flushdata.log')
4 try:
5 contents = file_object.readlines()
6 d = {}
7 for line in contents:
8 sp = line.split(',')
9 tagc = sp[0]
10 mid = sp[1].strip('\n')
11 if tagc in d:
12 d[tagc].append(mid)
13 else :
14 d[tagc] = [mid]
15
16 arr = sorted(d.keys())
17
18 str = ""
19 for tagc in arr:
20 str += "update list set tag=" + tagc + " where mid in ("
21 str += "'" + "','".join(d[tagc]) + "'"
22 str += ");\n"
23
24 file_object = open('flushdata_py.sql', 'w')
25 file_object.write(str)
26 file_object.close()
27
28 finally:
29 file_object.close()
执行后,diff下俩文件一致
diff -b -B flushdata_php.sql flushdata_py.sql
python的语法不太熟悉,第一次写比较生硬...
各种冒号 TAB,dict 和list的用法 简单应用了下
以上是 第一个python程序 的全部内容, 来源链接: utcz.com/z/388484.html