Skip to content

Instantly share code, notes, and snippets.

@hxer
hxer / batch.py
Created June 12, 2019 09:41
可迭代对象按固定大小chunk分割,不补齐
from itertools import islice, chain
#!/usr/bin/python3
def batch(iterable, size):
source_iter = iter(iterable)
while True:
batch_iter = islice(source_iter, size)
try:
first_element = next(batch_iter)
except StopIteration:
@hxer
hxer / mail_template.py
Created May 5, 2019 04:27
jinja2渲染HTML邮件
# -*- coding:utf-8 -*-
from jinja2 import Environment
from jinja2 import FileSystemLoader
if __name__ == "__main__"
data = {}
env = Environment(loader=FileSystemLoader('{0}/templates/'.format(os.path.dirname(__file__))))
template = env.get_template('risk_rule_daily.html')
html = template.render(**data)
@hxer
hxer / log.py
Last active September 18, 2021 14:37
python logging 将日志同时输出文件和屏幕
# 日志打印屏幕或文件
def setup_logger_2(logger_name, level=logging.INFO, handler='all', log_file=''):
"""
:param logger_name:
:param log_file:
:param level:
:param handler: file or stream or all
:return:
"""
log_setup = logging.getLogger(logger_name)
@iurisilvio
iurisilvio / fib.py
Created October 3, 2011 17:36
Python Fibonacci Q-Matrix
fibs = {0: 0, 1: 1}
def _fib(n):
if n in fibs: return fibs[n]
if n % 2 == 0:
fibs[n] = ((2 * fib((n / 2) - 1)) + fib(n / 2)) * fib(n / 2)
return fibs[n]
else:
fibs[n] = (fib((n - 1) / 2) ** 2) + (fib((n+1) / 2) ** 2)
return fibs[n]