第一个python程序

python

  版本上线,有个洗数据的流程。

  根据一个文件,把sql生成出来。

  习惯了利用php,非常简单的几句代码就写出来。因为没写过python,就想用py写下,虽然没啥技术含量,也就当练习下。

原文件格式如下:  

30001,BACDH45101

30001,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/python

2

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

回到顶部