Python
王图思睿
廉颇老矣,能饭!
展开
-
阿里巴巴 MySQL binlog 增量订阅 & 消费组件 Canal 实践
原文 -> 阿里巴巴 MySQL binlog 增量订阅 & 消费组件 Canal 实践https://blog.error.work/python/115.html背景最近有个需求,有多个库,每个库中有一张相同表名的表需要实时同步到另一个服务器上的 Mysql,本想自己 python 写一个脚本去处理,就这么巧,正好看到了阿里巴巴开源的 Canal,刚刚好他又满足需求,那就勉为其难试用一下叭[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-vlKLXxgl转载 2020-11-18 14:43:21 · 1339 阅读 · 0 评论 -
loguru 简单方便的 Python 日志记录管理模块
原文:loguru 简单方便的 Python 日志记录管理模块 -> https://blog.error.work/python/114.html这是个啥?在 Python 中,一般情况下我们可能直接用自带的 logging 模块来记录日志,包括我之前的时候也是一样。在使用时我们需要配置一些 Handler、Formatter 来进行一些处理,比如把日志输出到不同的位置,或者设置一个不同的输出格式,或者设置日志分块和备份。但其实个人感觉 logging 用起来其实并不是那么好用,其实主要还是配置转载 2020-11-18 11:42:51 · 2535 阅读 · 2 评论 -
python:Pandas里千万不能做的5件事
本文不再更新,最新链接:https://blog.error.work/python/106.html作为一个在进入数据分析领域之前干过开发的攻城狮,我看到我的同行以及新手在使用 Pandas 时会犯很多低级错误。今天我说出这五个坑,让大家别一而再,再而三的掉坑里。修复这些错误能让你的代码逻辑更清晰,更易读,而且把电脑内存用到极致。错误1:获取和设置值特别慢这不能说是谁的错,因为在 Pandas 中获取和设置值的方法实在太多了。大部分时候,你必须只用索引找到一个值,或者只用值找到索引。然而,在转载 2020-10-28 14:39:40 · 498 阅读 · 0 评论 -
Pycharm 专业版配置自动同步代码至服务器
每次在本机上面写代码,然后传到服务器上面,在服务器上面运行,这样的方式十分繁琐,效率很低,使用下方配置后可实现本地编辑代码保存自动同步到服务器。使用场景先说说自己的使用场景,我是在什么情况下,需要将IDE配置成这样的环境来方便我的工作。首先,我需要在本地机子上开发代码,需要将本地写好的代码上传到服务器上,在服务器上运行。由于代码能力渣渣,所以常常需要反复修改代码,而直接在服务器上修改代码不是很方便。因此,希望可以像下面一样操作:可以直接在本机上码代码自动将代码同步到远程服务器上面配置过程首原创 2020-06-16 18:21:16 · 2617 阅读 · 0 评论 -
脱离苦海,从避免滥用try...except...开始
有不少人在写 Python 代码时,喜欢用 try...except Exception,更有甚者一层套一层,不管有没有用,先套了再说:def func(): try: "函数内部代码" except Exception as e: print('函数错误:', e)try: func()except Exception as e:...转载 2020-05-07 18:21:03 · 680 阅读 · 0 评论 -
linux 安装 python3.8 过程
一、下载 Python 31、进入 opt 文件目录下,cd opt/2、下载 python3 (可以到官方先看最新版本多少)输入命令 wget https://www.python.org/ftp/python/3.8.2/Python-3.8.2.tgz如果出现 找不到 wget 命令,输入yum -y install wget,安装其依赖将会被安装3、安装 Python3...原创 2020-04-10 15:44:17 · 16132 阅读 · 2 评论 -
只需几行代码,即可实现多线程和多进程操作
concurrent.futures 是标准库里的一个模块,它提供了一个实现异步任务的高级 API 接口。本文将通过一些代码例子来介绍这个模块常见的用法。ExecutorsExecutor 是一个抽象类,它有两个非常有用的子类–ThreadPoolExecutor 和 ProcessPoolExecutor 。从命名就可以知道,前者采用的是多线程,而后者使用多进程。下面将分别介绍这两个子类,...转载 2019-12-11 14:31:29 · 664 阅读 · 0 评论 -
python 异步执行装饰器
使用多线程写一个简单的异步调用装饰器:async_call.py:import threadingdef myasync(f): def wrapper(*args, **kwargs): thr = threading.Thread(target = f, args = args, kwargs = kwargs) thr.start() ...原创 2019-12-03 15:11:47 · 1709 阅读 · 1 评论 -
如何回收 Python 中的“垃圾”?
本文不再更新,最新版本请查看:https://error.work/python/48.html前言对于 python 来说,一切皆为对象,所有的变量赋值都遵循着对象引用机制。程序在运行的时候,需要在内存中开辟出一块空间,用于存放运行时产生的临时变量;计算完成后,再将结果输出到永久性存储器中。如果数据量过大,内存空间管理不善就很容易出现OOM(out of memory),俗称爆内存,程序可...转载 2019-12-02 11:21:50 · 625 阅读 · 0 评论 -
Flask 将表单数据发送到模板
我们已经看到,可以在 URL 规则中指定 http 方法。触发函数接收的 Form 数据可以以字典对象的形式收集它并将其转发到模板以在相应的网页上呈现它。在以下示例中,’/’ URL会呈现具有表单的网页(student.html)。填入的数据会发布到触发 result() 函数的 ‘/result’ URL。results() 函数收集字典对象中的 request.form 中存在的表单数据,...原创 2019-04-01 16:35:02 · 1825 阅读 · 0 评论 -
python 多进程以及进程池使用简单示例
在利用 Python 进行系统管理的时候,特别是同时操作多个文件目录,或者远程控制多台主机,并行操作可以节约大量的时间。当被操作对象数目不大时,可以直接利用 multiprocessing 中的 Process 动态成生多个进程,10 几个还好,但如果是上百个,上千个目标,手动的去限制进程数量却又太过繁琐,这时候进程池 Pool 发挥作用的时候就到了。Pool 可以提供指定数量的进程,供用户调用...转载 2019-04-23 13:43:58 · 1070 阅读 · 0 评论 -
Pyinstaller 打包 python变为exe 在 windows下免 python 环境运行 python
python 程序编写完之后需要进行打包发布在 windows 下没有 python 环境运行 python 程序怎么办呢?可以打包成 exe,直接在 windows 下运行目前打包工具主要有三种cx_FreezePyInstallerpy2exe它们之间的比较http://www.py2exe.org/index.cgi/FAQhttp://www.pyinstaller....转载 2019-04-18 11:13:10 · 1274 阅读 · 0 评论 -
Python 连接 Oracle 数据库时遇到的坑及解决办法
本文不再维护,原文:https://error.work/content/14/问题一:Python 连接 Oracle 数据库时报错 64-bit Oracle Client library cannot be loaded: "F:\app\Administrator\product\11.1.0\db_1\BIN\oci.dll原因:Python3.5 版本 64 位 oracle1...转载 2019-04-26 14:01:58 · 2955 阅读 · 2 评论 -
python3 插入 mysql 时内容带有特殊字符处理
插入mysql时,如果内容中有引号等特殊符号,会报错,简单的解决方法可以用反斜杠转义,还可以用 pymysql 的方法(pymysql.escape_string)自动转义:使用举例:c = ''' 北京时间9月20日晚间9点半,智能供应链服务供应商百世集团将在<a class="wt_article_link" "WeiboCard.show(2125973432,'tech',th...转载 2019-04-15 16:44:05 · 3750 阅读 · 0 评论 -
pip批量导出安装包,批量安装各种包
freeze 查询各种安装包的版本, > 重定向到requirements文本,文本名字可随意命名pip freeze > requirements.txt 安装导出的各种安装包, -r 表示逐行读取安装pip install -r requirements.txt查看Python已安装的模块1.Windows或Linux控制台下查看模块pip list该命令查看...原创 2019-04-15 16:19:54 · 2737 阅读 · 0 评论 -
Flask 重定向和错误
Flask 类有一个 redirect() 函数。调用时,它返回一个响应对象,并将用户重定向到具有指定状态代码的另一个目标位置。redirect() 函数的原型如下:Flask.redirect(location, statuscode, response)在上述函数中:location 参数是应该重定向响应的 URL。statuscode 发送到浏览器标头,默认为 302。res...原创 2019-04-02 09:49:14 · 1532 阅读 · 0 评论 -
Flask 会话
Flask Sessions(会话)与 Cookie 不同,Session(会话)数据存储在服务器上。会话是客户端登录到服务器并注销服务器的时间间隔。需要在该会话中保存的数据会存储在服务器上的临时目录中。为每个客户端的会话分配会话 ID。会话数据存储在 cookie 的顶部,服务器以加密方式对其进行签名。对于此加密,Flask 应用程序需要一个定义的 SECRET_KEY。Session 对...原创 2019-04-01 17:18:18 · 1041 阅读 · 0 评论 -
Flask Cookies
Cookie 以文本文件的形式存储在客户端的计算机上。其目的是记住和跟踪与客户使用相关的数据,以获得更好的访问者体验和网站统计信息。Request 对象包含 Cookie 的属性。它是所有 cookie 变量及其对应值的字典对象,客户端已传输。除此之外,cookie 还存储其网站的到期时间,路径和域名。在 Flask 中,对响应对象设置 cookie。使用 make_response() 函数...原创 2019-04-01 16:52:30 · 1023 阅读 · 0 评论 -
python进度条tqdm的介绍及常用方法
原文:python进度条tqdm的介绍及常用方法一、介绍Tqdm 是一个快速,可扩展的 Python 进度条,可以在 Python 长循环中添加一个进度提示信息,用户只需要封装任意的迭代器 tqdm(iterator)。总之,它是用来显示进度条的,很漂亮,使用很直观(在循环体里边加个tqdm),而且基本不影响原程序效率。名副其实的“太强太美”了!这样在写运行时间很长的程序时,是该多么舒服啊!...原创 2019-05-14 09:56:32 · 1882 阅读 · 0 评论 -
flask项目端口设置无效
flask项目端口设置无效解决办法:程序设置(该方法无效):解决方法:右上角打开 “Edit Configurations” ,在Additional Options处设置启动参数删掉之前在run方法中设置的参数,再次运行OKvia:https://blog.csdn.net/baidu_30809315/article/details/83543803...转载 2019-05-15 16:29:49 · 2848 阅读 · 0 评论 -
Python 读取 csv 文件忽略引号中字段的逗号
如题,使用 Python 处理 csv 文件,之前是这么处理的:str = '飞机,火车,汽车'rel = str.split(',')> ['飞机','火车','汽车']一般情况下是正常的,但是如果在某个文本字段中带有逗号,处理就会有问题:str = “飞机,‘火车,book’,汽车"rel = str.split(',')> ['飞机','火车','book','汽...原创 2018-10-31 13:42:44 · 9994 阅读 · 0 评论 -
优雅地记录Python程序日志二:模块组件化日志记录器
转载自 州的先生博客 :https://zmister.com/archives/217.htmllogging的模块组件化在上一篇文章【优雅地记录Python程序日志:logging模块简介】中,我们介绍了 Python 的内置模块 logging 的使用,通过短短的几行代码我们就实现了一个日志记录器。import logginglogging.basicConfig(level=lo...转载 2019-09-17 15:42:40 · 709 阅读 · 0 评论 -
优雅地记录Python程序日志一:logging模块简介
转载自 州的先生博客 :https://zmister.com/archives/213.html前言在使用 Python 编写程序的过程中,我们经常使用 print() 函数打印一些信息到控制台,方便的查看结果和一些调试信息,以判断程序的运行是否正常。print() 确实是方便和易用,但是也有一些缺点,比如打印出来的信息不能保存,再次运行程序时,之前打印出来的结果就被清空了。而对于一些...转载 2019-09-17 15:35:43 · 645 阅读 · 0 评论 -
Python 内存分配时的小秘密
Python 中的 sys 模块极为基础而重要,它主要提供了一些给解释器使用(或由它维护)的变量,以及一些与解释器强交互的函数。本文将会频繁地使用该模块的 getsizeof() 方法,因此,我先简要介绍一下:该方法用于获取一个对象的字节大小(bytes)它只计算直接占用的内存,而不计算对象内所引用对象的内存这里有个直观的例子:import sysa = [1, 2]b = [a,...原创 2019-09-06 13:27:39 · 616 阅读 · 0 评论 -
【pandas 学习(1)】Series和DataFrame对象的创建
原文:https://github.com/hangsz/pandas-tutorial/blob/master/1. Series和DataFrame对象的创建.ipynbpandas 中的核心对象是 Series 和 DataFrame,这一节主要介绍如何创建这两种对象。import pandas as pdimport numpy as npimport matplotlib.p...转载 2019-07-22 16:08:40 · 1692 阅读 · 0 评论 -
【pandas 学习(0)】环境配置及说明
声明本教程原文来自 https://github.com/hangsz/pandas-tutorial ,本系列所有文章根据原文学习基础上修改而来。教程说明当今最热的职业是数据科学,数据科学领域应用最广泛的编程语言是 python,python 这么火的原因就是其有一个功能强大的数据科学库:pandas。为什么写这套教程然而,作为一名数据科学行业从业者,即使在 pandas 中浸淫日久,...转载 2019-07-22 15:05:35 · 761 阅读 · 0 评论 -
Python 高效操作文件
在这个世界上,人们每天都在用 Python 完成着不同的工作。而文件操作,则是大家最常需要解决的任务之一。使用 Python,你可以轻松为他人生成精美的报表,也可以用短短几行代码快速解析、整理上万份数据文件。via:https://www.zlovezl.cn/articles/three-tips-on-writing-file-related-codes/建议一:使用 pathlib 模块...转载 2019-06-18 15:47:38 · 798 阅读 · 0 评论 -
Python yield 使用浅析
您可能听说过,带有 yield 的函数在 Python 中被称之为 generator(生成器),何谓 generator ?我们先抛开 generator,以一个常见的编程题目来展示 yield 的概念。如何生成斐波那契數列斐波那契(Fibonacci)數列是一个非常简单的递归数列,除第一个和第二个数外,任意一个数都可由前两个数相加得到。用计算机程序输出斐波那契數列的前 N 个数是一个非常...转载 2019-06-05 16:48:53 · 616 阅读 · 0 评论 -
Flask 静态文件 & Request对象
Web 应用程序通常需要静态文件,例如 javascript 文件或支持网页显示的 CSS 文件。通常,配置 Web 服务器并为您提供这些服务,但在开发过程中,这些文件是从您的包或模块旁边的 static 文件夹中提供,它将在应用程序的 /static 中提供。特殊端点 ‘static’ 用于生成静态文件的 URL。在下面的示例中,在 index.html 中的 HTML 按钮的 OnClic...原创 2019-04-01 16:20:59 · 845 阅读 · 0 评论 -
Flask 模板
可以以 HTML 的形式返回绑定到某个 URL 的函数的输出。例如,在以下脚本中, hello() 函数将使用 <h1> 标签呈现 ‘Hello World’。from flask import Flaskapp = Flask(__name__)@app.route('/')def index(): return '<html><body>&l...原创 2019-04-01 16:12:43 · 805 阅读 · 0 评论 -
python 中split()使用多符号分割
调用re模块中的split()函数可以用多个符号进行分割In [1]: import reIn [2]: words = '我,来。上海?吃?上海菜'In [3]: wordlist = re.split(',|。|?',words)In [4]: print(wordlist)output:['我', '来', '上海', '吃', '上海菜']via:https://...转载 2018-12-20 14:46:31 · 9333 阅读 · 2 评论 -
Pycharm 配置 SVN 教程及配置 svn 后找不到 subversion 子菜单的解决办法
一、配置教程打开 pycharm,settings —>如图,默认 General 中是有勾选选项的,全部取消,按 OK点击菜单 VCS -> Browse VCS repository -> Browse Subversion Repository会弹出 SVN respositorys ,点击 + 新建。在弹出的 New Reposito...原创 2018-12-04 16:37:05 · 4619 阅读 · 2 评论 -
学习 Python3 使用 DataX 读取 csv 文件,写入另一个 csv 文件
DataX 简介DataX 是阿里巴巴集团内被广泛使用的离线数据同步工具/平台,实现包括 MySQL、Oracle、SqlServer、Postgre、HDFS、Hive、ADS、HBase、TableStore(OTS)、MaxCompute(ODPS)、DRDS 等各种异构数据源之间高效的数据同步功能。FeaturesDataX本身作为数据同步框架,将不同数据源的同步抽象为从源头数据源...原创 2018-11-01 15:44:45 · 10855 阅读 · 4 评论 -
Python 字符串按固定长度拆分
现需要将一个字符串按照每两个长度分隔,更改成一定格式如: mac = ’902B345FB021’ 改为 mac = ’90-2B-34-5F-B0-21’方法一:A = open('mac.txt','r') a = A.readlines() for aa in a: b = list(aa.strip()) c='' for i in range(len...转载 2018-11-07 15:47:35 · 5300 阅读 · 0 评论 -
使用 SSCursor (流式游标) 解决 Python 使用 pymysql 查询大量数据导致内存使用过高的问题
Python 导数据的时候,需要在一个大表上读取很大的结果集。如果用传统的 fetchall() 或 fetchone() 方法,都是先默认在内存里缓存下所有行然后再处理,大量的数据会导致内存资源消耗光,内存容易溢出。解决的方法:使用 SSCursor (流式游标),避免客户端占用大量内存。(这个 cursor 实际上没有缓存下来任何数据,它不会读取所有所有到内存中,它的做法是从储存块中读...原创 2018-10-30 17:41:58 · 12366 阅读 · 1 评论 -
Python 中设置 MongoDB 自增字段
MongoDB 没有像 SQL 一样有自动增长的功能, MongoDB 的 _id 是系统自动生成的 12 字节唯一标识。但在某些情况下,我们可能需要实现 ObjectId 自动增长功能。由于 MongoDB 没有实现这个功能,我们可以通过编程的方式来实现,以下我们将使用 Python 在 counters 集合中实现_id字段自动增长。创建 counters 集合,序列字段值可以实现自动...原创 2018-10-30 10:38:17 · 3415 阅读 · 0 评论 -
Python 使用 PyMysql、DBUtils 创建连接池,提升性能
个人 Python 学习记录Python 使用 PyMysql连接数据库,DBUtils 连接池使用简单例子Python 编程中可以使用 PyMysql 进行数据库的连接及诸如查询/插入/更新等操作,但是每次连接 MySQL 数据库请求时,都是独立的去请求访问,相当浪费资源,而且访问数量达到一定数量时,对 mysql 的性能会产生较大的影响。因此,实际使用中,通常会使用数据库的连接池技术,来访...原创 2018-10-26 13:47:11 · 9098 阅读 · 0 评论 -
python3 多线程 (threading) + 锁 (Lock) + 控制线程数量 (Semaphore) 的实例
学习记录:python3 多线程 (threading ) + 锁 (Lock) + 控制线程数量 (Semaphore) 的实例import threadingimport timedef sub(num): global count lock.acquire() #上锁,第一个线程如果申请到锁,会在执行公共数据的过程中持续阻塞后续线程 ...原创 2018-10-15 17:51:38 · 7203 阅读 · 0 评论 -
Python 操作 mongodb 亿级数据量使用 Bloomfilter 高效率判断唯一性 例子
工作需要使用 python 处理 mongodb 数据库两亿数据量去重复,需要在大数据量下快速判断数据是否存在参考资料:https://segmentfault.com/q/1010000000613729网上了解到 Bloom Filter ,Bloom filter 是由 Howard Bloom 在 1970 年提出的二进制向量数据结构,它具有很好的空间和时间效率,被用来检测一个元素...原创 2018-09-27 11:39:34 · 2666 阅读 · 0 评论 -
windows下python3.7安装pybloom报错解决办法
最近在学习Python,当然就学到了布隆过滤器pybloomfilter,然而安装的过程很曲折,Bloom Filter实际上是由一组哈希函数和一个字节列表组成. 详细介绍可以参考百度百科安装过程错误及解决办法:windows下python3.7安装pybloom报错:error: Setup script exited with error: Microsoft Visual C++...原创 2018-09-27 10:37:41 · 5467 阅读 · 4 评论