issue correct

This commit is contained in:
XiongNeng
2015-05-05 11:23:13 +08:00
parent 78201d7aaa
commit 474833b916
3 changed files with 49 additions and 40 deletions

View File

@@ -17,7 +17,8 @@ import logging.config as config
__author__ = 'Xiong Neng'
logging.basicConfig(level=logging.INFO,
format='%(asctime)s %(filename)s[line:%(lineno)d] %(levelname)s %(message)s',
datefmt='%Y-%m-%d %H:%M:%S')
datefmt='%Y-%m-%d %H:%M:%S',
handlers=[logging.FileHandler('message.log', 'a', 'utf-8')])
# 模块基本用_类级别用__
_log = logging.getLogger('app.' + __name__)

View File

@@ -17,17 +17,17 @@ from mysql.connector import errorcode
sql_create1 = """
CREATE TABLE t_enterprise (
id BIGINT PRIMARY KEY AUTO_INCREMENT COMMENT '主键ID',
name VARCHAR(300) NOT NULL COMMENT '企业名称',
tax_code VARCHAR(60) NOT NULL COMMENT '税号',
name VARCHAR(100) COMMENT '企业名称',
tax_code VARCHAR(30) COMMENT '税号',
region_id BIGINT COMMENT '区域ID',
customer_type INTEGER COMMENT '客户类型',
enterprise_type INTEGER COMMENT '企业类型',
address VARCHAR(200) COMMENT '详细地址',
postcode VARCHAR(10) COMMENT '邮编',
tel VARCHAR(30) COMMENT '联系电话',
tel VARCHAR(50) COMMENT '联系电话',
contact VARCHAR(10) COMMENT '联系人',
fax VARCHAR(30) COMMENT '传真',
mobile VARCHAR(30) COMMENT '手机号',
mobile VARCHAR(16) COMMENT '手机号',
created_time DATETIME DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
updated_time DATETIME DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间'
) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8 COMMENT '企业表';
@@ -37,7 +37,7 @@ sql_create2 = """
id BIGINT PRIMARY KEY AUTO_INCREMENT COMMENT '主键ID',
region_code VARCHAR(16) COMMENT '邮编',
regian_name VARCHAR(20) COMMENT '区域名',
note VARCHAR(120) COMMENT '备注',
note VARCHAR(200) COMMENT '备注',
parent_id BIGINT COMMENT '父级ID',
created_time DATETIME DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
updated_time DATETIME DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间'
@@ -66,14 +66,11 @@ sql_insert_region = """
"""
logging.basicConfig(level=logging.INFO,
format='%(asctime)s %(filename)s[line:%(lineno)d] %(levelname)s %(message)s',
datefmt='%Y-%m-%d %H:%M:%S')
datefmt='%Y-%m-%d %H:%M:%S',
handlers=[logging.FileHandler('excel.log', 'a', 'utf-8')])
_log = logging.getLogger('app.' + __name__)
def _log_info(msgpre):
_log.info('{}---{}'.format(msgpre, datetime.datetime.now().strftime('%Y-%m-%d %H:%M:%S')))
def _connect():
config = {
'user': 'root',
@@ -117,13 +114,16 @@ def parse_sheet(wb, sheet_name, column_num, log_msg):
break
row_data.append(cell.value)
result_list.append(row_data[:])
_log_info(log_msg)
_log.info(log_msg)
return result_list
def handle_wrong_line(wrong_line):
pass
def xlsx_to_table(xlsx_name):
conn_ = _connect()
_log_info('Excel文件解析start')
_log.info('Excel文件解析start')
wb = load_workbook(xlsx_name, read_only=True)
# 先收集企业资料表
list1 = parse_sheet(wb, 'customer', 6, 'customer表解析end')
@@ -134,36 +134,44 @@ def xlsx_to_table(xlsx_name):
# 收集区域表
list3 = parse_sheet(wb, 'region', 5, 'region表解析end')
data3 = [(v[0], v[1], v[2], v[3], v[4]) for v in list3[1:]]
_log_info('Excel文件解析end')
_log.info('Excel文件解析end')
_log.info('---------------------------分割线--------------------------------')
_log.info('数据库更新start')
cursor = conn_.cursor()
try:
_log.info('插入企业资料start')
for i, d1 in enumerate(data1):
if len(d1[1]) > 300 and not d1[2]:
_log.error('这一行有问题')
handle_wrong_line(d1)
continue
cursor.execute(sql_insert_enterprise, d1)
if i % 50 == 0:
conn_.commit()
conn_.commit()
_log.info('插入企业资料end')
_log_info('插入企业资料start')
for i, d1 in enumerate(data1):
cursor.execute(sql_insert_enterprise, d1)
if i % 50 == 0:
conn_.commit()
conn_.commit()
_log_info('插入企业资料end')
_log.info('更新企业联系信息start')
for i, d2 in enumerate(data2):
cursor.execute(sql_update_enterprise, d2)
if i % 50 == 0:
conn_.commit()
conn_.commit()
_log.info('插入企业资料end')
_log_info('更新企业联系信息start')
for i, d2 in enumerate(data2):
cursor.execute(sql_update_enterprise, d2)
if i % 50 == 0:
conn_.commit()
conn_.commit()
_log_info('插入企业资料表end')
_log.info('插入区域信息start')
for i, d3 in enumerate(data3):
cursor.execute(sql_insert_region, d3)
if i % 50 == 0:
conn_.commit()
conn_.commit()
_log.info('插入区域信息end')
_log_info('插入区域信息start')
for i, d3 in enumerate(data3):
cursor.execute(sql_insert_region, d3)
if i % 50 == 0:
conn_.commit()
conn_.commit()
_log_info('插入区域信息end')
_log_info('数据库更新end')
except:
logging.exception('Got exception on db handler')
raise
_log.info('数据库更新end')
cursor.close()
conn_.close()

View File

@@ -25,12 +25,12 @@
for li in lines:
if pattern in li:
yield li, previous_lines
previous_lines.append(line)
previous_lines.append(li)
# Example use on a file
if __name__ == '__main__':
with open(r'../../cookbook/somefile.txt') as f:
for line, prevlines in search(f, 'Python', 5):
for line, prevlines in search(f, 'python', 5):
for pline in prevlines:
print(pline, end='')
print(line, end='')