![](https://img-blog.csdnimg.cn/0bf26d15f5884562a6040c8c244c23f1.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
python
Python实战日常记录
llc的足迹
print("hello csdn!")
展开
-
Win11中使用pip或者Cython报错 —— error: Microsoft Visual C++ 14.0 is required.
这个问题是因为Python文件夹下缺少libs文件夹导致的,重新安装python或者从别的地方拷贝相同的文件可解决。不同的Python版本文件名称有区别。选择单个组件,勾选以下两个组件。原创 2023-08-10 09:07:07 · 1556 阅读 · 0 评论 -
查找遥感影像黑边
其中输入tif数据是墨卡托(3857)投影,所以使用wgs84_to_mercator健左边转换为经纬度(4326)extent 为影像的实际范围(左下角,右上角):【_bottom, _left, _top, _right】,原创 2023-03-21 16:01:49 · 149 阅读 · 0 评论 -
Minio python实现分片预签名上传
预签名上传简化了上传流程,将前端→后端→对象存储转化为前端→对象存储,节省了上传带宽预签名与分片上传相结合,解决了大文件上传限制,并利用Minio分片合并机制大大加快了分片合并的速度。原创 2023-01-29 10:33:14 · 1439 阅读 · 0 评论 -
python elasticsearch更新延迟问题
index、insert、update、bulkrefresh解释:param refresh:If ‘true’, Elasticsearch refreshes the affected shards to make this operation visible to search,if ‘wait_for’ then wait for a refresh to make this operation visible to search,if ‘false’ do nothing with r原创 2022-12-06 17:25:32 · 775 阅读 · 0 评论 -
python 命令行进度条-支持剩余时间计算
【代码】python 命令行进度条-支持剩余时间计算。原创 2022-11-03 16:18:39 · 454 阅读 · 0 评论 -
flask中使用matplotlib遇到的内存问题
将绘图逻辑放到子进程里面,这样随着子进程退出内存会得到完全释放,实际使用过程中发现第二种方法效果最好。原创 2022-10-24 14:16:05 · 784 阅读 · 0 评论 -
nginx 反向代理minio错误排查
前端上传时使用域名上传就会出现以上错误。正确的方法是签名和上传时应该统一,使用。原创 2022-10-14 09:48:03 · 2698 阅读 · 4 评论 -
python深度更新字典
【代码】python深度更新字典。原创 2022-09-28 09:16:42 · 341 阅读 · 0 评论 -
flask-sqlalchemy 绑定多个数据库并实现多数据库迁移
需要指定,数据迁移自动选择的相应数据库,不指定默认使用"测试表"})name=db.Column(db.String(128),comment="名称")原创 2022-08-02 14:01:10 · 1083 阅读 · 2 评论 -
Flask+uwsgi使用客户端真实IP地址
直接使用运行服务时,请求上下文的往往不是真实的IP,这里使用来获取代理的真实IP地址uwsgi服务器默认情况下同样不能获取到真实的IP地址,使用 参数即可,下面是参数说明:在配置文件中使用:...原创 2022-06-16 14:21:33 · 676 阅读 · 0 评论 -
supervisor、uwsgi配置文件
supervisor[program:app]command=uwsgi /work/app/conf/uwsgi.iniautostart=trueautorestart=true# 将stderr的日志写入stdout日志文件中redirect_stderr=truestdout_logfile=/data/log/supervisor.loguwsgi[uwsgi]# ...原创 2020-04-24 14:05:21 · 638 阅读 · 0 评论 -
python 正则替换固定个数文字
从开始将aaa替换为bbb,总共替换3次,re.sub的参数count=0时表示全部替换import re# 原始文本content = '111aaa222aaa333aaa444aaa555aaa'name = 'aaa'replace_name = 'bbb'# 替换次数count = 3for i in range(count): content = re.sub(name, replace_name, content, count=1) print(content)原创 2022-04-25 11:18:11 · 1307 阅读 · 0 评论 -
RQ配置使用Redis Cluster
一、基于docker-compose搭建redis集群1.1 集群配置3主+3从redis1-redis61.2 编写redis.conf新建目录:mkdir -p conf/{redis1,redis2,redis3,redis4,redis5,redis6}创建redis.conf,填入如下内容,将redis.conf拷贝至redis1-redis6目录中:cluster-enabled yes # 开启集群cluster-config-file nodes.conf # 集群配置文原创 2022-03-28 17:42:17 · 1792 阅读 · 0 评论 -
opencv不规则掩膜裁剪图片
源码import cv2import numpy as npimg = cv2.imread('cv.jpg')# 转换为hsvhsv = cv2.cvtColor(img, cv2.COLOR_BGR2HSV)# 新建掩膜(多个点围起来的多边形)points = np.array([[(100, 100), (400, 200), (512, 512), (5, 100)]], dtype=np.int32)mask = np.zeros(img.shape, dtype=np.uin原创 2021-11-16 14:44:12 · 4561 阅读 · 0 评论 -
docker多阶段构建并编译python项目为so(保护源码)
项目结构src 为源码路径project_name:./Dockerfile-compile./compile.py./srccompile脚本# -*- coding: utf-8 -*-# @Author : llc# @Time : 2021/11/15 15:13import osfrom Cython.Build import cythonizefrom setuptools import setup, Extensiondef c_compile(nam原创 2021-11-15 16:57:46 · 2021 阅读 · 0 评论 -
多进程使用docker容器中的selenium
启动容器docker run -it --rm --shm-size="4g" -p 4444:4444 selenium/standalone-chrome:3.141.59适当增加--shm-size="4g"大小,默认为64M,会抛出以下错误Traceback (most recent call last): File "C:\Program Files\Python38\lib\multiprocessing\process.py", line 315, in _bootstrap原创 2021-08-10 16:02:35 · 433 阅读 · 0 评论 -
sql分组查询并获取其它字段
数据库表需求按照uc分组,获取score最大值,并且要获取相应的duration列sql实现传统的group by,不能查询额外的列select uc, max(score)from t_chgroup by uc;查询结构:使用row_number函数:注意:mysql8.0版本需在8.0以上select t.uc, t.score, t.durationfrom ( select uc, score, duration, row_number() over原创 2021-07-01 16:37:14 · 2670 阅读 · 4 评论 -
SQLAlchemy关系示例
基础表class Base(db.Model): """基础数据库模型:提供id、创建时间、更新时间""" __abstract__ = True __table_args__ = {'mysql_collate': 'utf8_general_ci'} # 支持中文 id = Column(Integer, primary_key=True, comment='主键') create_time = Column(db.DateTime, default=date原创 2021-04-02 17:49:31 · 268 阅读 · 0 评论 -
redis实现图形验证码的存储和验证
生成图形验证码import randomimport stringimport uuidfrom captcha.image import ImageCaptcha# 连接Redis,相当于redis.Redis() 暂时是本地连接,decode_responses=True是将redis读取出来的短信验证码转换成字符串类型,原本是二进制字节redis_client = redis.StrictRedis(host=SMS_REDIS_HOST, port=SMS_REDIS_PORT,原创 2021-03-19 17:10:34 · 1639 阅读 · 0 评论 -
python k8sjob管理
获取pod信息根据标签查询pod列表core = CoreV1Api()pod_list = core.list_namespaced_pod(namespace='default', label_selector='job')for pod in pod_list.items: # 元数据 metadata: V1ObjectMeta = pod.metadata # 名称 pod_name = metadata.name # 标签 labels = metadata.labels原创 2021-03-04 16:36:37 · 595 阅读 · 1 评论 -
python获取函数执行过程中产生的标准输出
import tracebackfrom io import StringIOimport sysclass Capturing(list): def __enter__(self): self._stdout = sys.stdout # 将err、out输出到内存中 sys.stderr = sys.stdout = self._stringio = StringIO() return self def __ex原创 2021-02-23 14:20:42 · 974 阅读 · 1 评论 -
python函数超时处理
import signalimport timeclass TimeoutException(Exception): passdef timeout(func_timeout): def decorator(func): def handler(signum, frame): print(signum, frame) raise TimeoutException() def wrapper(*ar原创 2021-02-20 16:52:01 · 362 阅读 · 0 评论 -
k8s执行Job示例
from kubernetes.client import BatchV1Api, V1Job, V1Container, V1ObjectMeta, V1PodTemplateSpec, V1PodSpec, V1JobSpec, \ V1Volume, V1PersistentVolumeClaimVolumeSource, V1VolumeMount, V1ResourceRequirementsfrom kubernetes.config import load_kube_config原创 2021-02-20 09:44:37 · 1052 阅读 · 1 评论 -
pypi同步并搭建私有源
DockerfileFROM alpine:3.12RUN apk update && apk add --no-cache ca-certificates dcron bash gcc python3 py3-pip \ tzdata libxml2-dev libxslt-dev python3-dev linux-headers libc-dev && \ rm -rf /var/cache/apk/* && \ ln -原创 2021-02-18 15:59:32 · 1276 阅读 · 0 评论 -
pynvml获取可用GPU使用率
from pynvml import nvmlDeviceGetCount, nvmlInit, nvmlShutdown, nvmlDeviceGetHandleByIndex, nvmlDeviceGetMemoryInfodef get_free_gpu_number(): free_list = [] nvmlInit() for i in range(nvmlDeviceGetCount()): handle = nvmlDeviceGetHandle原创 2021-01-22 09:21:05 · 1045 阅读 · 0 评论 -
QGIS使用pyinstaller时找不到pyconfig.h
测试脚本import numpy as nparr = np.array([1, 2, 3])print(arr)打包命令"C:\Program Files\QGIS 3.10\bin\python-qgis-ltr.bat" -m PyInstaller -c test.py错误详情58 INFO: PyInstaller: 4.159 INFO: Python: 3.7.060 INFO: Platform: Windows-10-10.0.19041-SP064 INFO原创 2021-01-04 17:59:40 · 350 阅读 · 1 评论 -
Pycharm高效快捷键(动图展示)
自动导入此快捷键在代码量比较大时非常有用,输入gdal后按下Alt + Enter组合键,即可选择并导入gdal,代码量比较大时不用每次回到最前面导入需要的库import格式化Ctrl + Alt + O快捷键可以格式化import部分的代码,移除没用的库,按自带库、第三方库、自己写的库分类并排序print快速使用在一个字符串或其他对象后边直接输入.print,可快速打印该字符串跨行选取相同单词Alt + J选取相同单词,可以同时编辑多行iter快速遍历列表iter可实现快速补全遍原创 2020-12-12 13:13:22 · 1361 阅读 · 2 评论 -
python 删除字符串中以\x开头的特殊字符
content = "教案或公司的\r开发经哈高科\r\r点击返回啊科技时代部分按计划山东发芽改\n为欧服有噶司机电话发噶u要发噶三个地方监控和嘎奥法Python re正则表达式元字符之转义符 - 百度经验2019年9月2日 Python re正则表达式元字符之转义符,反斜杠后面跟元字符去除特殊功能,反斜杠后面跟普通字符实现特殊功能,比如\d百度经验百度快照Python 正则表达式(转义问题)_python_脚本之家2014年12月15日 Python 将字符串转义:\\\ 被转义为 \\ re 模块获得原创 2020-12-07 16:16:41 · 3157 阅读 · 1 评论 -
python docker 进阶应用
运行程序import dockerclient = docker.DockerClient(base_url='tcp://10.0.7.144:8888')r = client.containers.run('alpine:3.12', command='ls /', remove=True)print(r)原创 2020-10-16 16:04:47 · 258 阅读 · 0 评论 -
python docker 基础应用
环境与安装系统环境:No LSB modules are available.Distributor ID: UbuntuDescription: Ubuntu 20.04 LTSRelease: 20.04Codename: focaldocker环境:Docker version 19.03.8, build afacb8b7f0客户端安装pip install docker开启远程连接sudo vim /usr/lib/systemd/system/docker.servi原创 2020-10-16 14:52:32 · 127 阅读 · 0 评论 -
python退出Process多进程
import osimport signalimport sysfrom multiprocessing import Processclass Watcher(): def __init__(self): self.child = os.fork() if self.child == 0: return else: self.watch() def watch(self): .原创 2020-10-12 16:29:40 · 2199 阅读 · 1 评论 -
flask内存中写入excel并返回
from flask import Flask, make_responsefrom io import BytesIOimport xlwtapp = Flask(__name__)@app.route('/excel')def download_excel(): buffer = BytesIO() workbook = xlwt.Workbook(encoding='utf-8') sheet = workbook.add_sheet('sheet1')原创 2020-07-13 17:41:24 · 617 阅读 · 0 评论 -
python正则处理多种格式时间字符串
其中,\s为空格转义、\/为/转义,\-为-转义print(re.split(r'[\s\/\-:T]', '1996/6/19 14:20:13'))print(re.split(r'[\s\/\-:T]', '1996/6/19 14:20'))print(re.split(r'[\s\/\-:T]', '1996-06-19T14:20:13'))print(re.split(r'[\s\/\-:T年月日]', '2020年06月23日'))# ['1996', '6', '19', '原创 2020-07-11 09:39:18 · 562 阅读 · 0 评论 -
python 全角半角
def str_q2b(ustring): """全角转半角""" ss = [] for s in ustring: rstring = "" for uchar in s: inside_code = ord(uchar) if inside_code == 12288: inside_code = 32 elif 65281 <= ins原创 2020-07-03 14:42:32 · 377 阅读 · 0 评论