cat 1.txt
tomcat 192.1.1.121
redis 192.1.1.121
CREATE TABLE `a` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`ip` varchar(50) NOT NULL DEFAULT '',
`apply` varchar(50) NOT NULL DEFAULT '',
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=65 DEFAULT CHARSET=utf8;
<code>#!/usr/bin/env python</code>
<code># -*- coding: utf-8 -*-</code>
<code>import</code> <code>sys</code>
<code>#import pymysql</code>
<code>#pymysql.install_as_MySQLdb()</code>
<code>import</code> <code>MySQLdb as mdb</code>
<code>con </code><code>=</code> <code>mdb.connect(</code><code>'192.1.1.197'</code><code>, </code><code>'root'</code><code>, </code><code>'xxxxxx'</code><code>, </code><code>'db03'</code><code>)</code>
<code>def</code> <code>db_execute(sql):</code>
<code> </code><code>cursor </code><code>=</code> <code>con.cursor()</code>
<code> </code><code>'''cursor.execute(sql)</code>
<code> </code><code>con.commit()</code>
<code> </code><code>cursor.close()'''</code>
<code> </code><code>try</code><code>:</code>
<code> </code><code>cursor.execute(sql)</code>
<code> </code><code>con.commit()</code>
<code> </code><code>cursor.close()</code>
<code> </code><code>except</code><code>:</code>
<code> </code><code>con.rollback()</code>
<code>def</code> <code>insert_template(file_path):</code>
<code> </code><code>with </code><code>open</code><code>(file_path, </code><code>'r'</code><code>) as </code><code>file</code><code>:</code>
<code> </code><code>for</code> <code>lines </code><code>in</code> <code>file</code><code>.readlines():</code>
<code> </code><code>line </code><code>=</code> <code>lines.strip(</code><code>'\n'</code><code>).split()</code>
<code> </code><code>print</code> <code>tuple</code><code>(line)</code>
<code> </code><code># sql = 'insert table(field) values({0});'.format(line)</code>
<code> </code><code>sql </code><code>=</code> <code>"INSERT INTO a(apply,ip) VALUES('%s','%s')"</code> <code>%</code><code>tuple</code><code>(line)</code>
<code> </code><code>print</code> <code>sql</code>
<code> </code><code>db_execute(sql)</code>
<code> </code><code>#print sql_lines</code>
<code>def</code> <code>select_template():</code>
<code> </code><code>sql </code><code>=</code> <code>'select bb.ip from b bb,a aa where bb.apply = aa.apply group by bb.ip'</code>
<code> </code><code>cursor.execute(sql)</code>
<code> </code><code>template_list </code><code>=</code> <code>cursor.fetchall()</code>
<code> </code><code>res </code><code>=</code> <code>template_list</code>
<code> </code><code>print</code> <code>res</code>
<code> </code><code>for</code> <code>m </code><code>in</code> <code>res:</code>
<code> </code><code>print</code> <code>type</code><code>(m[</code><code>0</code><code>])</code>
<code> </code><code>#template_list = cursor.fetchall()</code>
<code> </code><code>#print template_list</code>
<code>def</code> <code>test1():</code>
<code> </code><code>id_list </code><code>=</code> <code>[</code><code>1</code><code>, </code><code>2</code><code>, </code><code>3</code><code>]</code>
<code> </code><code>id_list </code><code>=</code> <code>','</code><code>.join([</code><code>str</code><code>(cursor.connection.literal(i)) </code><code>for</code> <code>i </code><code>in</code> <code>id_list])</code>
<code> </code><code>print</code> <code>id_list</code>
<code> </code><code>sql </code><code>=</code> <code>'SELECT col1, col2 FROM table1 WHERE id IN (%s)'</code> <code>%</code> <code>id_list</code>
<code> </code><code>print</code> <code>sql</code>
<code>def</code> <code>select_template2():</code>
<code> </code><code>id_list </code><code>=</code> <code>[</code><code>1</code><code>, </code><code>2</code><code>]</code>
<code> </code><code>sql </code><code>=</code> <code>'SELECT * FROM a WHERE id IN %s'</code><code>, (id_list,)</code>
<code> </code><code>#cursor.execute(sql)</code>
<code> </code><code>cursor.execute(</code><code>'SELECT ip,apply FROM a WHERE id IN %s'</code><code>%</code> <code>(</code><code>tuple</code><code>(id_list),))</code>
<code>if</code> <code>__name__ </code><code>=</code><code>=</code> <code>'__main__'</code><code>:</code>
<code> </code><code>file_path </code><code>=</code> <code>'1.txt'</code>
<code> </code><code>insert_template(file_path)</code>
<code> </code><code>#select_template()</code>
<code> </code><code>select_template2()</code>
只写了插入和查询,其他类似。
改进版,先判断表中是否存在,在进行插入
<code>#!/usr/bin/env python2.7</code>
<code># import pymysql</code>
<code># pymysql.install_as_MySQLdb()</code>
<code>from</code> <code>ConfigParser </code><code>import</code> <code>ConfigParser</code>
<code># con = mdb.connect('172.1.1.1', 'root', 'root', 'db03')</code>
<code>def</code> <code>init_db():</code>
<code> </code><code>try</code><code>:</code>
<code> </code><code>con </code><code>=</code> <code>mdb.connect(host</code><code>=</code><code>conf.get(</code><code>'Database'</code><code>, </code><code>'host'</code><code>),</code>
<code> </code><code>user</code><code>=</code><code>conf.get(</code><code>'Database'</code><code>, </code><code>'user'</code><code>),</code>
<code> </code><code>passwd</code><code>=</code><code>conf.get(</code><code>'Database'</code><code>, </code><code>'passwd'</code><code>),</code>
<code> </code><code>db</code><code>=</code><code>conf.get(</code><code>'Database'</code><code>, </code><code>'db'</code><code>),</code>
<code> </code><code>charset</code><code>=</code><code>'utf8'</code><code>)</code>
<code> </code><code>return</code> <code>con</code>
<code> </code><code>except</code><code>:</code>
<code> </code><code>print</code> <code>"Error:数据库连接错误"</code>
<code> </code><code>return</code> <code>None</code>
<code>def</code> <code>test(param):</code>
<code> </code><code>with con:</code>
<code> </code><code>cur </code><code>=</code> <code>con.cursor()</code>
<code> </code><code>sql </code><code>=</code> <code>'INSERT INTO a(ip,apply) VALUES(%s,%s)'</code>
<code> </code><code># param = [['tomcat', '192.1.1.121'], ['redis', '192.1.1.122'], ['mongodb', '192.1.1.122']]</code>
<code> </code><code># param = ((username1, salt1, pwd1), (username2, salt2, pwd2), (username3, salt3, pwd3))</code>
<code> </code><code>cur.executemany(sql, param)</code>
<code> </code><code>cursor.close()</code>
<code>def</code> <code>insert_file(</code><code>file</code><code>):</code>
<code> </code><code>with </code><code>open</code><code>(</code><code>file</code><code>, </code><code>'r'</code><code>) as </code><code>file</code><code>:</code>
<code> </code><code>tupleline </code><code>=</code> <code>tuple</code><code>(line[</code><code>0</code><code>:</code><code>2</code><code>])</code>
<code> </code><code>sql </code><code>=</code> <code>"INSERT INTO a(apply,ip) VALUES('%s','%s')"</code> <code>%</code> <code>tuple</code><code>(tupleline)</code>
<code>def</code> <code>insert_dict(</code><code>dict</code><code>):</code>
<code> </code><code>for</code> <code>key,items </code><code>in</code> <code>dict</code><code>.iteritems():</code>
<code> </code><code>line </code><code>=</code> <code>[]</code>
<code> </code><code>line.append(key)</code>
<code> </code><code>for</code> <code>item </code><code>in</code> <code>items:</code>
<code> </code><code>line.append(item)</code>
<code> </code><code>print</code> <code>line</code>
<code> </code><code>sql </code><code>=</code> <code>"INSERT INTO a(ip,apply) VALUES('%s','%s')"</code> <code>%</code> <code>tuple</code><code>(line)</code>
<code> </code><code>del</code> <code>line[</code><code>-</code><code>1</code><code>]</code>
<code>def</code> <code>select_example():</code>
<code> </code><code># template_list = cursor.fetchall()</code>
<code> </code><code># print template_list</code>
<code>def</code> <code>select_style():</code>
<code>def</code> <code>select(ip):</code>
<code> </code><code>#id_list = [1, 2]</code>
<code> </code><code>#sql = 'SELECT * FROM a WHERE id IN %s', (id_list,)</code>
<code> </code><code>#cursor.execute('SELECT ip,apply FROM a WHERE id IN %s' % (tuple(id_list),))</code>
<code> </code><code>sql </code><code>=</code> <code>"SELECT * FROM a WHERE ip = '%s'"</code> <code>%</code><code>(ip)</code>
<code> </code><code>contents </code><code>=</code> <code>cursor.fetchall()</code>
<code> </code><code>res </code><code>=</code> <code>contents</code>
<code> </code><code>iplist </code><code>=</code> <code>[]</code>
<code> </code><code>applist </code><code>=</code> <code>[]</code>
<code> </code><code>for</code> <code>row </code><code>in</code> <code>contents:</code>
<code> </code><code>iplist.append(row[</code><code>1</code><code>])</code>
<code> </code><code>applist.append(row[</code><code>2</code><code>])</code>
<code> </code><code>return</code> <code>applist</code>
<code>def</code> <code>read_file(</code><code>file</code><code>):</code>
<code> </code><code>sql_lines </code><code>=</code> <code>[]</code>
<code> </code><code>sql_lines.append(line)</code>
<code> </code><code>print</code> <code>sql_lines</code>
<code> </code><code>return</code> <code>sql_lines</code>
<code> </code><code># print '\r\n'.join(str(sql_lines)) python3用的</code>
<code>''' file</code>
<code>192.1.1.121 tomcat</code>
<code>192.1.1.122 redis,mongodb,tomcat</code>
<code>'''</code>
<code>def</code> <code>read_file_2(</code><code>file</code><code>):</code>
<code> </code><code>app </code><code>=</code> <code>{}</code>
<code> </code><code>ip </code><code>=</code> <code>line[</code><code>1</code><code>]</code>
<code> </code><code>apply</code> <code>=</code> <code>line[</code><code>-</code><code>1</code><code>]</code>
<code> </code><code>if</code> <code>not</code> <code>ip </code><code>in</code> <code>app:</code>
<code> </code><code>app[ip] </code><code>=</code> <code>[]</code>
<code> </code><code>app[ip].append(</code><code>apply</code><code>)</code>
<code> </code><code>return</code> <code>app</code>
<code> </code><code>conf </code><code>=</code> <code>ConfigParser()</code>
<code> </code><code>conf.read(</code><code>'mysql.conf'</code><code>)</code>
<code> </code><code>con </code><code>=</code> <code>init_db()</code>
<code> </code><code>file</code> <code>=</code> <code>'add'</code>
<code> </code><code>apply</code> <code>=</code> <code>read_file_2(</code><code>file</code><code>)</code>
<code> </code><code>for</code> <code>key,items </code><code>in</code> <code>apply</code><code>.iteritems():</code>
<code> </code><code>dict</code> <code>=</code> <code>{}</code>
<code> </code><code>dst_data </code><code>=</code> <code>select(key)</code>
<code> </code><code>src_data </code><code>=</code> <code>list</code><code>(</code><code>set</code><code>(items))</code>
<code> </code><code>ret_list </code><code>=</code> <code>[item </code><code>for</code> <code>item </code><code>in</code> <code>src_data </code><code>if</code> <code>item </code><code>not</code> <code>in</code> <code>dst_data]</code>
<code> </code><code>dict</code><code>[key] </code><code>=</code> <code>ret_list</code>
<code> </code><code>if</code> <code>ret_list:</code>
<code> </code><code>insert_dict(</code><code>dict</code><code>)</code>
本文转自 liqius 51CTO博客,原文链接:http://blog.51cto.com/szgb17/1971959,如需转载请自行联系原作者