
python 进阶
python_tty
努力成为python大牛
展开
-
python 读取zip包中的数据
读取zip包中的内容原创 2022-11-15 18:17:34 · 1771 阅读 · 0 评论 -
asyncio异步编程(一)
asyncio异步编程原创 2022-06-21 18:16:35 · 202 阅读 · 0 评论 -
ModuleNotFoundError: No module named ‘virtualenv‘
环境:python3.8.8python路径:/Applications/anaconda3/bin/pythonsite-packages路径: /Applications/anaconda3/lib/python3.8/site-packages用pip install virtualenv, 装完virtualenv之后,执行virtualenv --version命令报ModuleNotFoundError: No module named ‘virtualenv’在python解释器里 i原创 2021-12-13 18:18:49 · 4380 阅读 · 0 评论 -
python3安装使用supervisor
1.安装supervisorpip install supervisor2.生成配置文件mkdir /etc/supervisorecho_supervisord_conf > /etc/supervisor/supervisord.conf3.修改supervisor的配置文件把/tmp/supervisor.sock改成/var/run/supervisor.sock,防止出现unix:///tmp/supervisor.sock no such file问题把/tmp/supeer原创 2021-11-09 16:50:24 · 640 阅读 · 0 评论 -
flask下载excel文件
flask提供了send_from_directory方法来下载文件,使用很方便,但是在下载的文件名中包含中文就会出问题。修改之前的代码:send_from_directory(dir_path, file_name, as_attachment=True, attachment_filename="中文名.xlsx")# dir_path: 要下载的文件的文件夹# file_name: 要下载的文件名 # attachment_fi原创 2021-03-24 18:58:51 · 1520 阅读 · 0 评论 -
项目包命名和python源码包命名相等问题
这个问题是因为项目中有个同名的math包, 所有就报错了,改一下项目中的包的名称就可以了原创 2020-06-03 17:40:10 · 315 阅读 · 0 评论 -
qrcode生成二维码
使用qrcode生成二维码, 源码:https://github.com/lincolnloop/python-qrcode将网址加入到二维码中,扫二维码就可以跳转到该网址def generate_qr_code(resource, file_name): """ 资源是 url """ qr = qrcode.QRCode(version=1, error_correction=qrcode.constants.ERROR_CORRECT_L) qr.add_d原创 2020-05-25 19:58:41 · 323 阅读 · 0 评论 -
python正则匹配-匹配汉字,拼音,标点符号
最近做需求需要把一段带有拼音的段落分割成汉字,拼音,标点符号。正则匹配的表达式修正了很多次,才完美的匹配出所有的内容。完整的表达式:r'[\u4e00-\u9fa5]|[Aa-zZāáǎàōóǒòēéěèīíǐìūúǔùüǖǘǚǜńňǹḿmɡ]*[0-4]{0,1}|[a-zA-Z0-9_]|[\W]'汉字表达式:[\u4e00-\u9fa5]拼音表达式:[Aa-zZāáǎàōóǒòēéěèīíǐìūúǔùüǖǘǚǜńňǹḿmɡ]*[0-4]{0,1}字符表达式:[a-zA-Z0-9_]包含中原创 2020-05-18 14:33:37 · 5897 阅读 · 1 评论 -
python 发送邮件
发送带附件,抄送和密抄送的邮件。其中邮件附件可以是本地的也可以是远程的,如果是远程服务器的资源,需要先下载下来import smtplibimport requestsfrom email.mime.multipart import MIMEMultipartfrom email.mime.text import MIMETextfrom email.mime.application i...原创 2019-08-26 11:44:23 · 307 阅读 · 0 评论 -
Lock和RLock的区别
lock和rlock都可以用来同步进程或者线程,它们之间的区别在于rlock是可重入的,也就是一个线程可以获取多次,只有在release相同次数时,rlock才会有locked状态转换为unlocked。acquire和release的具体区别:Lock.acquire([blocking]):线程阻塞或者非阻塞的获取锁当不带参数调用时,调用线程会阻塞,直到锁的状态是unlocked,然...原创 2019-05-29 15:39:05 · 8195 阅读 · 0 评论 -
python并行编程(三)--线程同步
用信号量来进行线程同步。该示例来自于https://python-parallel-programmning-cookbook.readthedocs.io/zh_CN/latest/chapter2/08_Thread_synchronization_with_semaphores.html代码:# -*- coding:utf-8 -*-# __author__ = majingimp...原创 2019-04-18 15:32:01 · 236 阅读 · 0 评论 -
python并行编程(二)--线程同步
用threading的Lock来实现线程同步import threadingshared_resource_with_lock = 0shared_resource_with_no_lock = 0COUNT = 1000000shared_resource_lock = threading.Lock()# 有锁的情况def increment_with_lock(): ...原创 2019-04-18 11:35:46 · 166 阅读 · 0 评论 -
python并行编程(一)--多线程
此处的示例是对书籍《python并行编程》代码的改进,文档地址:https://python-parallel-programmning-cookbook.readthedocs.io/zh_CN/latest/chapter2/06_Thread_synchronization_with_Lock_and_Rlock.html用threading模块来实现并行编程import threadi...原创 2019-04-17 18:46:11 · 951 阅读 · 0 评论 -
Grumpy: Go 运行 Python
概览Grumpy是一个把python代码编译成Go代码的编译器和一个运行时,它旨在替换CPython2.7. 关键的区别是它将Python源代码编译为Go源代码, 然后将其编译为本机代码,而不是字节码. 这意味着Grumpy没有VM. 编译的Go源代码是对Grumpy运行时的一系列调用, Go的库服务与Python C API的作用是一样的(尽管不直接支持C API)限制Grumpy可翻译 2017-01-18 18:00:27 · 5424 阅读 · 2 评论 -
将一个多维的数组展开成一个一维的数组
test.py aa = [[1,2,3], 8,9, [23,[45,78,67]]]single_list = []def parse_list(alist): if isinstance(alist, list): for item in alist: parse_list(item) else: single_list.a原创 2017-06-19 17:40:16 · 8370 阅读 · 0 评论 -
完全理解 Python 迭代对象、迭代器、生成器
本文源自RQ作者的一篇博文,原文是Iterables vs. Iterators vs. Generators,俺写的这篇文章是按照自己的理解做的参考翻译,算不上是原文的中译版本,推荐阅读原文,谢谢网友指正。 在了解Python的数据结构时,容器(container)、可迭代对象(iterable)、迭代器(iterator)、生成器(generator)、列表/集合/字典推导式(list,set转载 2017-06-25 18:39:38 · 568 阅读 · 1 评论 -
python mixin
mixin有2个使用原则: 1. 如果你想给一个类附加很多可选的方法和属性 2. 有很多类使用同一个特定的方法和属性 一个比较好的在类的方法里添加日志的mixinclass LoggingMixin(object): """ Convenience super-class to have a logger configured with the class name "原创 2017-12-16 13:37:48 · 1186 阅读 · 0 评论 -
argparse详解
一个命令基本上有这几中呈现方式,单独一个命令,命令后面带一个位置参数或者命令后面带一个可选的参数或者是位置参数和可选参数的组合。每个命令会带一个默认的可选参数–help(-h),来显示帮助文档。 argparse就是用来解析命令,根据命令的参数来得到相应的结果。argparse使用:添加位置参数:import argparseparser = argparse.ArgumentPa...原创 2018-02-27 11:45:29 · 812 阅读 · 0 评论 -
python multiprocessing详解
Process类的使用“` import os from multiprocessing import Processdef info(title): print title print ‘module name:’, name if hasattr(os, ‘getppid’): # only available on Unix ...翻译 2018-03-08 10:46:06 · 853 阅读 · 0 评论 -
python 环境踩坑
服务器上的python版本不要超过2个,超过2个就会很乱。最近项目新版本上线,在老环境python3.5里一直起不起来,报错: ImportError: dynamic module does not define module export function (PyInit__sqlite3) 查了很久才知道是python3.5环境有问题,装python3.5的时候sqlite3这个包没装进...原创 2018-05-25 18:30:59 · 645 阅读 · 0 评论 -
解决apscheduler定时任务重复发送问题
项目中要实现动态添加定时任务的功能,看了celery, celery不能实现动态添加定时任务的功能(celery添加定时任务之后要重启beat,定时任务才能生效)。后来看了apscheduler,apscheduler可以实现动态添加定时任务,但是有一个缺点,apscheduler不是一个单独的服务,它依赖于主服务。项目用gunicorn来部署,问题来了,gunicorn的每个worker都有初始...原创 2019-02-14 10:30:33 · 10302 阅读 · 7 评论 -
super用法详解
super调用父类的方法,对于单继承,父类很明显,不难理解,对于多继承,super的调用方法就不同了,2个例子搞懂多继承时,super调用父类方法class A(object): def __init__(self): print "A.__init__" class B(A): def __init__(self): A.__init__(self原创 2017-01-08 12:08:37 · 497 阅读 · 0 评论