Python-杂谈
记录Python语言中的常用用法。
Enougme
搬砖仔!!!
展开
-
Python-实现高并发的常见方式
但是,由于Python的全局解释器锁(GIL),同一时刻只允许一个线程执行Python字节码。例如,对于I/O密集型应用,使用异步I/O(如asyncio)或者Tornado这样的非阻塞网络框架会是个不错的选择;Python 3.4 引入的 asyncio 模块允许进行异步编程,你可以使用 async 和 await 关键字编写看起来像同步代码的异步代码。它是基于事件循环的,适合I/O密集型任务,能够在单个线程内实现高并发。与线程不同的是,协程的调度完全由程序控制,协程之间的切换不需要上下文切换的开销。原创 2024-01-05 22:21:25 · 780 阅读 · 0 评论 -
ffmepg-图片与视频之间的转换
ffmpeg实现图片和视频的转换原创 2023-01-05 19:30:33 · 653 阅读 · 0 评论 -
Python-实现本地服务和远程服务映射
本地服务与远程服务实现映射关系原创 2022-12-16 17:38:18 · 450 阅读 · 0 评论 -
python-查找元素是否在列表中连续出现n次
python; 查找元素是否在python列表中连续出现n次原创 2022-11-21 21:26:14 · 535 阅读 · 0 评论 -
Python-解决(往列表追加字典,已追加的字典被覆盖)
列表追加字典,已追加的字典被覆盖原创 2022-10-09 20:44:08 · 1102 阅读 · 1 评论 -
Python-使用进程池提高代码执行速度
使用进程池的方式提高代码执行速度通过使用进程池的方式并获取被执行函数的返回值from multiprocessing.pool import Poolfrom multiprocessing import Manager def get_info(context_params, return_dict, num): """ 获取处理之后的信息 @return: """ test_result = [] test_result= RecFa原创 2022-02-23 19:48:45 · 526 阅读 · 0 评论 -
python-提取GIF动图中的每一帧图片及将图片合成GIF动图
一: 提取GIF动图中的每一帧图片from PIL import Imageimport osdef get_imgs(): """ 提取动图中的每一帧图片,并保存到文件夹中 """ gif_path = os.path.join(os.getcwd(), "image_dir", "1.gif") new_path = os.path.join(os.getcwd(), "image_dir", "gif_img") gif = Image.open原创 2021-09-30 09:57:25 · 3975 阅读 · 0 评论 -
Python-在字典的指定位置添加键值对
from collections import OrderedDict# 方式一def modify_dict_1(source_dict, new_key, old_key, value): """ 将dict初始化为OrderedDict。创建一个新的空OrderedDict,遍历原始字典的所有键,并在键名匹配时插入before/after """ new_dict = OrderedDict() for k, v in source_dict.items(原创 2021-07-14 14:36:47 · 6301 阅读 · 0 评论 -
Python-处理时间
import timeimport arrowclass TimeHandler(object): @staticmethod def handle_timestamp(time_stamp): # 将13位时间戳转成正常格式时间 time_stamp = float(time_stamp / 1000) time_stamp = time.localtime(time_stamp) time_stamp = time.strftim原创 2021-07-09 20:40:37 · 77 阅读 · 0 评论 -
Python-提取多维矩阵中的重复数据
对多维矩阵的元素按相同元素个数和此相同元素组成的字典进行提取。 def handler_multiple_lists(lists): """ 提出多维矩阵中重复的元素 param lists : 多个列表组成的矩阵, [[1, 2, 3], [2, 3, 4], [4, 5, 6]] return : 重复数据组成的字段,键为重复的数据,值为出现的次数 例如 {"1": 10, "2": 4,......} """原创 2021-05-13 22:56:44 · 1220 阅读 · 0 评论 -
Python保存数据超过10W的处理方式
在实际操作中,存储excel的数量超过一个sheet时的解决办法: def create_source_excel(params, goods_ids, counts, file): """ 生成源数据的excel文件 """ quotient, remainder = divmod(len(params), 100000) cycle_number = quotient + 1 if remainder else qu原创 2021-05-13 22:40:46 · 532 阅读 · 0 评论 -
requests与grequests,requests+gevent运行速度对比
grequests使用方式实例化请求对象: grequests.request(method, url, **kwargs)发起请求获得响应: grequests.map(requests, stream=False, size=None, exception_handler=None, gtimeout=None)将请求的生成器对象并发地转换为反应的产生者:grequests.imap(requests, stream=False, size=2, exception_handler=None)原创 2020-09-22 19:41:40 · 854 阅读 · 0 评论 -
Locust压测webscoket协议
Locust是一款易于使用的分布式负载测试工具。即使一个Locust节点也可以在一个进程中支持数千个用户的并发,主要通过gevent(协程)的方式。Locust是完全基于Python,http请求完全是基于requests库。Locust支持http、https协议,还支持测试其他协议,websocket等,只要采用Python调用对应的库就可以了。http/https采用requests;websocket采用websocket;记录自己的一次使用locust压测websocket协议的代码流程原创 2020-09-13 21:18:40 · 1040 阅读 · 1 评论 -
requests发送multipart/form-data请求
使用requests模块请求接口时,会遇到Content-Type:multipart/form-data; boundary=----WebKitFormBoundaryQwiOKYyOtrkiQ1K3这个请求体的格式,我们可以借助第三方库MultipartEncoder进行处理处理方式如下:1:先安装MultipartEncoder:pip install requests_toolbelt2:先用postman进行请求,确认是否请求的通(未带file文件)3:使用代码实现import r原创 2020-07-28 19:34:08 · 2237 阅读 · 0 评论 -
Selenium+PhantomJS的常用操作
Selenium是一个Web的自动化测试工具,最初是为网站自动化测试而开发的,类型像我们玩游戏用的按键精灵,可以按指定的命令自动操作,不同是Selenium 可以直接运行在浏览器上,它支持所有主流的浏览器(包括PhantomJS这些无界面的浏览器)。PhantomJS 是一个基于Webkit的“无界面”(headless)浏览器,它会把网站加载到内存并执行页面上的 JavaScript,因为不会展示图形界面,所以运行起来比完整的浏览器要高效。下载PhantomJS:wget https://bitbu原创 2020-07-07 10:58:54 · 258 阅读 · 0 评论 -
grequests模块的使用
使用场景:1) 爬虫设置ip代理池时验证ip是否有效 2)进行压测时,进行批量请求等等场景grequests 利用 requests和gevent库,做了一个简单封装,使用起来非常方便。grequests.map(requests, stream=False, size=None, exception_handler=None, gtimeout=None)另外,由于grequests底层使用的是requests,因此它支持GET,OPTIONS, HEAD, POST, PUT, DELE原创 2020-06-18 15:58:40 · 1457 阅读 · 0 评论 -
Python-爬取京东网站商品信息,并写入excel
from retrying import retryimport requestsfrom lxml import etreeimport timeimport osbase_url = "https://search.jd.com/Search?keyword=手机华为&enc=utf-8"if os.path.exists("JD.xlsx"): os.remove("JD.xlsx")def func(): return "请求失败"@retry(sto原创 2020-05-22 17:45:46 · 1723 阅读 · 0 评论 -
Python-openpyxl对excel取消/合并单元格,以及修改单元格值
获取已合并单元格的位置信息# worksheet.merged_cells获取已经合并单元格的信息;再使用worksheet.unmerge_cells()拆分单元格; m_list = ws.merged_cells cr = [] for m_area in m_list: # 合并单元格的起始行坐标、终止行坐标。。。。, r1, r2, c1, c2 = m_area.min_row, m_area.max_row, m_area.min_co原创 2020-05-20 20:05:55 · 7390 阅读 · 2 评论 -
Python-爬取小说内容并下载
# 文章首页链接url = "https://www.17k.com/chapter/108821/3148523.html"def book_spider(): # 爬取并下载小说内容 import requests from bs4 import BeautifulSoup import time headers = {"user-agent": "Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36原创 2020-05-20 10:30:51 · 326 阅读 · 0 评论 -
提取新闻网站信息
分享一个爬取新闻类信息得Python库: GeneralNewsExtractor(GNE),也可以认为是通用新闻网站正文抽取模块,输入新闻详情页面得的 HTML信息, 输出正文内容、标题、作者、发布时间、正文中的图片地址和正文所在的标签源代码。GNE在提取今日头条、网易新闻、游民星空、 观察者网、凤凰网、腾讯新闻、ReadHub、新浪新闻等中文新闻网站信息时均可以正确提取出来。使用该模块不是爬...原创 2020-05-06 15:10:55 · 528 阅读 · 0 评论 -
openpyxl对excel的修改
对excel的修改删除操作如下:import openpyxldef test1(): # 修改原有excel文件 wb = openpyxl.load_workbook("1.xlsx") # 获取sheet对象 sheet = wb["sheet_name"] sheet["A1"] = "修改之后的数据" wb.save("1.xlsx"...原创 2020-04-29 20:11:05 · 1388 阅读 · 0 评论 -
爬取新闻网站的财经信息
要爬取的新闻信息可以通过Ctrl+U快捷键查看页面的html源码,便于数据结构分析数据结构:类news_li下的h2标签下的a链接指定每个新闻的详情完整代码如下:#encoding:utf-8import requestsfrom pyquery import PyQuery as pqimport osimport datetimeheader = { "Re...原创 2020-04-24 11:25:05 · 480 阅读 · 0 评论 -
Flask-将链接url内容压缩成zip文件返回给前端
首先定义下载函数import asynciodef download_url(url): new_loop = asyncio.new_event_loop() asyncio.set_event_loop(new_loop) loop = asyncio.get_event_loop() task = asyncio.ensure_future(asyc_st...原创 2020-04-23 16:26:17 · 1275 阅读 · 1 评论 -
Numpy库常用操作
创建数组常用方式:np.arange(n) 返回一个0到n-1的数组np.ones(shape) shape为元组(行, 列),元素全部为1np.zeros(shape) 元素全部为0np.full(shape, val) 元全为val值np.eye(n) 创建一个正方的n*n单位矩阵,对角线全为...原创 2020-04-23 10:32:08 · 162 阅读 · 0 评论 -
Python操作docker里面的redis
使用操作命令借助subprocess模块进行操作#encoding:utf-8import subprocessdef cmd(command): subp = subprocess.Popen(command,shell=True,stdout=subprocess.PIPE,stderr=subprocess.PIPE,encoding="utf-8") subp.wai...原创 2020-04-20 19:45:16 · 646 阅读 · 0 评论 -
Python -- OpenCV2实现静态图像的几何变换
import cv2import numpy as np# 将图片平移100pxdef test(): img = cv2.imread("1.JPG", 1) imgInfo = img.shape height = imgInfo[0] width = imgInfo[1] dst = np.zeros(imgInfo, np.uint8) ...原创 2020-03-24 10:48:17 · 141 阅读 · 0 评论