Python
潘广宇
主攻Golang|Python|PHP|数据库|高并发架构|人工智能,Base广州,博客主要写一些工作上遇到的问题和处理经验
展开
-
Python 计算两篇文章的相似度
日常工作中,我们偶尔会遇到比如判断两篇文章是否雷同,可以通过计算两篇文章相似度去判断,下面是通过python实现的方式原创 2023-08-21 16:41:36 · 607 阅读 · 0 评论 -
官方系列之 Redis Pipeline 大幅改善多个命令执行 TTS
什么是TTS:客户端向服务端发送一个查询请求,并监听Socket返回,通常是以阻塞模式,等待服务端响应。服务端处理命令,并将结果返回给客户端。TTS(Round Trip Time)表示该过程的往返时间当多个命令分多次执行时,如果网络延迟,就会造成TTS总和变大。利用管道技术,将多个命令一次发送给Redis服务端,只需要等待最后一次服务器的答复。shell例子:> (printf "PING\r\nPING\r\nPING\r\n"; sleep 1) | redis-cli -a原创 2021-07-26 14:57:45 · 363 阅读 · 0 评论 -
Python 实现获取随机单词翻译
from random_words import RandomWordsimport requestsimport jsonrw = RandomWords()YOUDAO_URI = 'http://fanyi.youdao.com/translate?&doctype=json&type=AUTO&i='MAX_WORD_LETTER = 20WORD_NUMBER = 10vocabulary = rw.random_words(count = WORD_.原创 2020-05-27 11:38:11 · 1221 阅读 · 0 评论 -
Python 多进程 + 协程 (gevent) 实例
利用多进程(multiprocessing)+多协程(gevent)实现同时请求10个网站urlfrom multiprocessing import Poolimport geventimport requestsimport timefrom collections import dequefrom functools import wrapslist = [ "http://www.baidu.com", "http://www.qq.com", "http://www.we原创 2020-05-14 14:42:26 · 1204 阅读 · 0 评论 -
Python Gevent 中文入门教程,中文文档
个人写的一个来自http://sdiehl.github.io/gevent-tutorial/的翻译文档详见:https://github.com/panguangyu/gevent-tutorial-chinese原创 2020-05-14 11:05:36 · 2091 阅读 · 0 评论 -
Sublime Python 的一些环境配置
安装好看的主题Install Package : ayuInstall Package : edge安装 Python shell 编辑器:Install Package : SublimeREPL安装 Python 代码提示:或者安装 KiteInstall Package : sublimeLinterInstall Package : bracket Hightlighter安装 Python 快捷键:F1 打开 shell,F5 运行代码preferenc原创 2020-05-09 11:44:43 · 181 阅读 · 0 评论 -
理解 Python Cookbook 元编程例子的 attach_wrapper 函数
from functools import wraps, partialimport loggingdef attach_wrapper(obj, func=None): if func is None: return partial(attach_wrapper, obj) setattr(obj, func.__name__, func) return funcdef l...原创 2020-04-17 16:32:31 · 406 阅读 · 0 评论 -
基于 Python 的 Cmd 命令行的 HTTP 请求工具
# 需 Windows 安装 Python 环境pip install requests详见项目源码:https://github.com/panguangyu/CmdHttpTool# -*- coding:utf-8 -*-import requestsimport sysimport jsondef sendRequest(method: str, url: st...原创 2020-04-14 19:18:15 · 588 阅读 · 0 评论 -
Python No module named '_ctypes' 报错
解决方案:yum -y install libffi-devel tk-devel重新编译 Python:make install注意,如果gcc版本较低(8.1.0已兼容),在configure参数中不要使用 --enable-optimazations实测:Python 3.8.2,GCC版本:4.8.5 ./configure --enable-optimazat...原创 2020-04-07 12:10:17 · 752 阅读 · 0 评论 -
Python concurrent.futures 的 as_completed 函数解释
先来看一段 demo 代码:from concurrent import futuresimport timeimport randomdef returnNumber(number: int)->int: print("start return number {}".format(number)) time.sleep(random.randint(10, 2...原创 2020-04-05 23:15:08 · 6908 阅读 · 1 评论 -
Python concurrent.futures 的 map 函数解释
先看一个 demo 程序:from concurrent import futuresimport timeimport randomdef returnNumber(number: int)->int: print("start return number {}".format(number)) time.sleep(random.randint(10, 20...原创 2020-04-05 21:32:10 · 4820 阅读 · 0 评论 -
Wing IDE 使用 Yapf 规范 Python 代码格式
pip install blackpip install yapf以在 Wing IDE 为例,点击 Source -> Reformatting -> Reformat file with YAPF 即可原创 2020-04-03 10:19:57 · 418 阅读 · 0 评论 -
Python 实现一个加密函数的简单封装
# -*- coding:utf-8 -*-"""# @function 实现加密算法简单封装# @package 无# @environment Python 2.0+# @author Panguangyu"""import hashlib, base64class Encrypt(object): """ 实现简单的md5 ...原创 2020-03-30 20:58:39 · 792 阅读 · 0 评论 -
Python 实现 Datetime 和 timestamp 时间戳互转
# -*- coding:utf-8 -*-import datetime, timeclass DateTimestamp(object): def __init__(self): self._timestamp = int(time.time()) self._datetime = self.getDateTimeByTimestamp(sel...原创 2020-03-30 18:01:59 · 3331 阅读 · 0 评论 -
Python nonlocal 关键字学习
1、nonlocal关键字修饰变量后标识该变量是上一级函数中的局部变量,如果上一级函数中不存在该局部变量,nonlocal位置会发生错误(最上层的函数使用nonlocal修饰变量必定会报错)2、nonlocal关键字只能用于嵌套函数中,并且外层函数中定义了相应的局部变量,否则会发生错误摘录自:https://blog.csdn.net/xcyansun/article/details/79...原创 2020-03-28 15:19:52 · 261 阅读 · 0 评论 -
Python 实现一个简单的多线程
import threadingdef main(str): print(str)def create_thread(num, *args): threads = [] for i in range(num): try: t = threading.Thread(target=main, args=args) ...原创 2020-03-28 11:23:17 · 369 阅读 · 0 评论 -
基于 Python difflib 的 Windows 文件对比工具
源代码详见:https://github.com/panguangyu/Diffoo效果如下:原创 2020-03-26 12:03:00 · 297 阅读 · 0 评论 -
Python GUI 制作一个浏览器
from PyQt5 import QtWidgets,QtCore,QtGuifrom PyQt5.QtWidgets import *from PyQt5.QtGui import *import sys,os,requestsfrom PyQt5.QtWebEngineWidgets import *class UI(QMainWindow,): def __init...原创 2020-03-25 19:52:22 · 1680 阅读 · 3 评论 -
Python 实现一个带有超链接加文字的窗口
from tkinter import *import webbrowserroot = Tk()text = Text(root,width=30,height = 5)text.pack()text.insert(INSERT, "百度一下,你就知道")text.tag_add("link","1.0","1.4")text.tag_config("link", fo...原创 2020-03-25 19:49:48 · 1705 阅读 · 0 评论 -
Centos 搭建双 Python 环境
因为 Centos 默认带有的是 Python 2.7 版本,由于生产环境需要,经常会使用到 Python 3 环境,因此需要给 Centos 搭建双 Python 环境,步骤如下。一、在 /usr/src/ 新建 python 3 目录cd /usr/src/python3二、下载 Python 3.x 的软件包到任意目录wget Python-3.x.tgztar -z...原创 2020-03-08 12:16:52 · 291 阅读 · 0 评论 -
简单理解 Python yield from 关键字
def test(num): while True: print("start {}".format(num)) yield from range(num) print("end {}".format(num)) num = num + 1 if (num >= 5): break #print("生成 {}".format(num))for it in...原创 2020-03-03 09:16:49 · 197 阅读 · 0 评论 -
简单理解 Python yield 关键字
# encoding=UTF-8 #def test(max): print("这里只运行一次") while True: yield max max = max + 1 if max > 10: breakfor n in test(0): print(n)# 打印结果 这里只运行一次 0 1 2 3 4 5 6 7 8 9 10# 一个带有 yi...原创 2020-03-02 20:21:53 · 242 阅读 · 0 评论 -
B站学习 Pygame 笔记:Pygame 最小开发框架
import pygame, syspygame.init()screen = pygame.display.set_mode((1200, 400)) # 设置一个窗口pygame.display.set_caption("我的第一个game") # 设置窗口标题while True: for event in pygame.event.ge...原创 2020-02-21 19:31:39 · 167 阅读 · 0 评论 -
关于 Python 修饰器的一段秒懂代码
# encoding=UTF-8import time# @param func : 传入的函数,该装饰器就用来在运行func的同时做些别的事(如计算程序运行的时间)def decorator(func): # @param args : 传入的func函数的参数,定义为*args可以兼容func为多参数的情况 def wrapper(*args): time1 = time.t...原创 2020-02-16 14:32:28 · 210 阅读 · 0 评论 -
Python 简单文件操作:写入文件
-*- coding:utf-8 -*-f = open('./a.txt', 'w')f.write("xxxx")f.close()// w: 如果没有这个文件,将会创建一个;如果有,则先把原文件的内容清空再写入新的东西// a: 不清空原有数据,直接在后面追加新的内容...原创 2019-05-02 23:29:06 · 550 阅读 · 0 评论 -
Python OpenCV 框出人脸,判断是否有人脸
import cv2 as cvcascade = cv.CascadeClassifier("./haarcascade_frontalface_default.xml") ## 读入分类器数据sample_image = cv.imread("./IMG_20180425_211801_mh1524757522440.jpg") ## 图片地址faces = casc...原创 2019-05-12 22:43:57 · 3828 阅读 · 0 评论 -
Python 抓取网页的所有超链接
import urllib.requestfrom bs4 import BeautifulSouphtml = urllib.request.urlopen("http://www.sohu.com").read().decode("utf-8")soup = BeautifulSoup(html, features='html.parser')tags = soup.find_a...原创 2019-05-17 20:06:04 · 3873 阅读 · 2 评论 -
Python 实现单词翻译
# -*- coding:utf-8 -*-import requestsstring = str(input("请输入单词(中或英):"))data = { 'doctype': 'json', 'type': 'AUTO', 'i':string}url = "http://fanyi.youdao.com/translate"r = requests...原创 2019-06-27 16:50:23 · 3515 阅读 · 0 评论 -
Python No module named '_sqlite3' 解决方案
一、安装sqlite-develyum -y install sqlite-devel然后重新编译安装Python若步骤一完成后,仍然报错:ModuleNotFoundError: No module named '_sqlite3',则进行步骤二二、找到_sqlite3.so并复制到指定目录find / -name _sqlite3.so找到的路径类似于:/u...原创 2019-06-27 20:11:56 · 32550 阅读 · 2 评论 -
Python 快速建立一个 API 服务器
from wsgiref.simple_server import make_serverfrom urllib.parse import parse_qsdef application(environ, start_response) : print(environ['PATH_INFO']) start_response('200 OK', [('Content-Typ...原创 2019-06-28 11:22:35 · 3730 阅读 · 0 评论 -
Python 实现 Linux 命令行看股票
pip install tushare --upgrade# -*- coding:utf-8 -*-import tushare as tsdf = ts.get_realtime_quotes(['300059', '399006', 'sh'])print(df['code'][2] + " " + df['name'][2] + " " + str(round((f...原创 2019-07-01 11:42:13 · 2544 阅读 · 0 评论 -
Python 批量修改图片尺寸
from PIL import Imageimport os.pathimport globdef Resize(file, outdir, width, height): imgFile = Image.open(file) try: newImage = imgFile.resize((width, height), Image.BILINEAR) ...原创 2019-02-14 20:48:18 · 4120 阅读 · 6 评论