Python
彳亍261
这个作者很懒,什么都没留下…
展开
-
【算法】Python实现字符串数字混合排序 字符串升序数字降序 多维列表排序
列表多维排序,字符串升序数字降序原创 2023-07-22 17:20:54 · 2845 阅读 · 0 评论 -
【Gunicorn】Gunicorn安装&相关配置&脚本
Gunicorn安装Gunicorn常用配置Gunicorn获取用户真实IPGunicorn用户访问日志原创 2021-11-22 21:29:57 · 4947 阅读 · 0 评论 -
汉字 Unicode编码范围及 计算文本的中文英文字数
汉字Unicode编码范围u4e00~u9fffU+4E00~U+9FA5 是最常用的范围,即名为:CJK Unified Ideographs 的区块,U+9FA6~U+9FFF 之间的字符还属于空码,暂时还未定义,但不能保证以后不会被定义def is_zh(char): """ :param char: 单个字符 :return: """ if u'\u4e00' <= char <= u'\u9fff':原创 2020-07-23 23:33:33 · 3325 阅读 · 0 评论 -
【hashlib】Python通过hashlib实现sha1, sha224, sha256, sha384, sha512, blake2b 和 blake2s, md5
Hashlib针对不同的安全哈希和消息摘要算法提供一个通用的接口。包括 FIPS 的 SHA1, SHA224, SHA256, SHA384, and SHA512 (定义于 FIPS 180-2) 算法,以及 RSA 的 MD5 算法( 定义于 Internet RFC 1321)。较旧的算法被称为消息摘要,现代术语是安全哈希。支持的hash算法可以直接通过点的方式进行调用,支持的算法有:'md5', 'sha1', 'sha224', 'sha256', 'sha384', 'sha512',原创 2020-07-23 23:08:53 · 1008 阅读 · 0 评论 -
【html】Python提取html中文本到txt
正则去标签方式# -*- coding: utf-8 -*-import redef html_tag_rm(content: str): dr = re.compile(r'<[^>]+>',re.S) return dr.sub('',content)nltk比较笨重需要安装依赖 nltk, numpy, pyyaml# -*- coding: utf-8 -*-import nltkdef html_tag_rm(content: str): retu原创 2020-07-22 23:42:46 · 2565 阅读 · 0 评论 -
【chm】Python提取chm数据
需求场景chm格式文档中的内容,提取保存为html方法一 使用在线转换工具或者软件方法二 脚本编译step 1:.bat脚本反编译使用该脚本, 可以将chm文件反编译,类似解压,获取文件。有些文档可以直接转换为txt,有些会转化为html. 这个跟生成chm文件有关系。1 新建txt文档, 参照示例写入命令。保存后文件另存为.bat格式hh -decompile 转换结果输出路径 待转换文件(相对/绝对路径)# 示例hh -decompile D:\Desktop\ 123.ch原创 2020-07-22 23:25:12 · 3686 阅读 · 0 评论 -
【PyYaml】yml教程 pyyaml库介绍及yml写 yml读取
TODO YamlPyYAML源码: https://github.com/yaml/pyyaml安装# pip命令行安装pip install PyYAML# 下载源码的安装python setup.py install导入import yaml读取yaml文件def read_yaml(yml_file, mode='r', encoding='utf-8'): """ yaml中内容读取并转化为Python对象 :param yml_file: :原创 2020-06-30 23:01:04 · 791 阅读 · 0 评论 -
【Python CI】圈复杂度 lizard
1. 圈复杂度1.1 什么是圈复杂度?引用[1]圈复杂度是 Thomas J. McCabe 在 1976年开创的软件指标,用来判断程序的复杂度。这个指标度量源代码中线性独立的路径或分支的数量。根据 McCabe 所说,一个方法的复杂度最好保持在10 以下。这是因为对人类记忆力的研究表明,人的短期记忆只能存储 7 件事(偏差为正负 2)。如果开发人员编写的代码有 50 个线性独立的路径,那么为了在头脑中描绘出方法中发生的情况,需要的记忆力大约超过短期记忆容量的 5倍。简单的方法不会超过人的短期记原创 2020-06-14 17:02:38 · 5112 阅读 · 1 评论 -
【zipfile】Python实现将文件打包为zip压缩包 & 解压
用Python将文件进行压缩,可以使用 zipfile库,提供了非常丰富的API。zipfile本身是上下文管理器, 可以使用with。以下为自己简单写的Demo。import osimport zipfiledef file2zip(zip_file_name: str, file_names: list): """ 将多个文件夹中文件压缩存储为zip :param zip_file_name: /root/Document/test.zip :para原创 2020-06-13 21:37:10 · 18108 阅读 · 0 评论 -
【Nginx】常见配置方法
nginx.confserver max-content-lengthsite-avalables site-enabled原创 2020-06-10 22:14:43 · 1164 阅读 · 1 评论 -
【NLP】文本语种检测
langidgithub源码:https://github.com/saffsd/langid.py特点支持97中语言滤过速度快准确率高不支持中文繁体(香港),中文繁体(台湾)检测接口 classify rank>>> import langid# classify 输出最可能的语言>>> langid.classify("I do not speak english")('en', 0.57133487679900674)>>原创 2020-06-10 21:52:09 · 2569 阅读 · 0 评论 -
Python set()集合的内置方法及 差集,并集,交集的实现,集合运算
set集合是一个元素不重复的无序的集合。其中一个用途就是被用来去重。set() 定义# 定义新的空集合的方法, 只有一种, 不能写: {}, {}是空字典的定义创建方法set_a = set()# 非空集合创建set_b = {value0, value1, value2, ...}set_c = set(value0, value1, value2, ...)内置基本操作# 添加set_a.add(x)set_a.remove(x) # 存在删除,不存在会报错set_a.disc原创 2020-05-31 22:31:04 · 2298 阅读 · 0 评论 -
【数据提取】xml html数据提取—— xpath
1 xml & htmlXML 指可扩展标记语言(eXtensible Markup Language),被设计用来传输和存储数据。HTML 超文本标记语言(HyperText Markup Language)是一种用于创建网页的标准标记语言。1.1 html和xml的区别数据格式描述设计目标XML可扩展标记语言(eXtensible Markup Lang...原创 2020-05-31 22:05:17 · 944 阅读 · 0 评论 -
【解决方案】Pyinstaller打包exe文件详细教程
在业务场景中, 经常需要Python开发一些小程序/脚本/GUI界面,交付给一些小白或未安装Python 的小伙伴们使用。噔噔蹬蹬pyinstaller 闪亮登场场景说明使用Pyinstaller将Python脚本或者项目打包,生成可执行的.exe文件。Pyinstaller是一个很不错的免费打包工具,支持Windows,Linux和MacOS,完美支持32位和64位系统。pyinstaller安装pip install pyinstaller打包参数# 常用打包参数# -F .原创 2020-05-27 23:45:54 · 15991 阅读 · 2 评论 -
【示例-多任务】Python 协程gevent模块
协程,又称微线程,纤程。协程是Python中另外一种实现多任务的方式, 是比线程占用更小的执行单元。多进程, 多线程, 协程中差异见: 【Python面试场景】进程-线程-协程相关问题汇总gevent是一个强大的并且能够自动切换任务的模块, 是Python的第三方库, 需要单独安装。它使用 greenlet在libev 或libuv事件循环的顶部提供高级同步API 。pip3 install...原创 2020-05-01 10:25:33 · 383 阅读 · 0 评论 -
【示例-多任务】Python多进程multiprocessing模块
multiprocessing模块就是跨平台版本的多进程模块,提供了一个Process类来代表一个进程对象更多内置方法见 官方文档: multiprocessing — 基于进程的并行1. 进程的创建1.1 创建 & 获取Pidimport osimport timefrom multiprocessing import Processdef run_proc(): ...原创 2020-04-23 22:59:37 · 465 阅读 · 0 评论 -
【示例-多任务】Python多线程threading模块
Python内置了 threading模块, 是对更底层的thread模块的封装。内置方法见官方文档: threading - 基于线程的并行多线程执行#coding=utf-8import threadingimport timedef thread_test(): print("test.") time.sleep(1)if __name__ == "__ma...原创 2020-04-22 22:48:30 · 346 阅读 · 0 评论 -
【Nginx】python flask项目Nginx代理添加前缀
场景Flask项目中,通过后端渲染了模板。如果只是单纯接口, 只需在blueprint中添加对应的proxy就行。但是涉及很多的内置接口 添加固定的前缀。比如Nginx中配置了代理的 前缀/7000。需要在所有的接口中, 都添加 /7000.如果手动实现, 一是工作量大, 二是不利于后期维护,三是涉及Flask框架内置模板接口的,修改有难度。以下就是一种简便的实现方案解决方案# 封装类...原创 2020-04-01 20:37:19 · 2182 阅读 · 1 评论 -
Python定时任务的几种实现方法
最近需要涉及定时任务, 将涉及定时任务的实现方案进行了整理。大家自取吧。链接内为官方样例TODO 给大家提供示例的实现方案schedPython内置库https://docs.python.org/zh-cn/3/library/sched.htmlschedulehttps://pypi.org/project/schedule/crontabhttps://pypi.org...原创 2020-04-01 19:36:57 · 336 阅读 · 0 评论 -
Python字典合并 多个字典的之合并为列表示例
# -*- coding: utf-8 -*-"""字典合并 场景说明 输入: 多个 \t分割的文本文件 每个文本文件的两列数据分别代表 x轴数值 y轴数值 多个文件的x轴的数值不连续 输出: 合并的 \t分割的文本文件"""def text_file_write(file_name: str, content_list: lis...原创 2020-03-05 23:20:50 · 4272 阅读 · 0 评论 -
Python匿名函数lambda说明及示例 字典数字键排序
匿名函数lambda, 你搞清楚 了吗?lambda 函数 形式匿名函数 一般形式lambda arguments: expression函数形式def <lambda>(arguments): return expression通过这个形式, 基本上就知道如何使用了, 以及各个位置的作用示例:场景一有一个键为字符串格式的数字的字典, 需要按...原创 2020-03-05 23:08:20 · 889 阅读 · 0 评论 -
Python3多种方式虚拟环境创建及激活虚拟环境 退出虚拟环境(未完待续)
为什么需要一个虚拟环境Python官方给出的解释, 简单可以理解为隔离的沙箱环境,多个开发需求不会相互干扰。Python应用程序通常会使用不在标准库内的软件包和模块。应用程序有时需要特定版本的库,因为应用程序可能需要修复特定的错误,或者可以使用库的过时版本的接口编写应用程序。这意味着一个Python安装可能无法满足每个应用程序的要求。如果应用程序A需要特定模块的1.0版本但应用程序B需要2...原创 2020-03-01 00:45:24 · 6640 阅读 · 0 评论 -
【问题解决】Ubuntu中Python3升级高版本后 Err returned non-zero status 1 或者status 2问题解决
出现问题场景Ubuntn中原有Python3.5,现升级安装Python3.7 之后在多个使用场景下, 出现以下问题:问题1 status 1subprocess.CalledProcessError: Command '('lsb_release', '-a')' returned non-zero exit status 1.问题2 status 2returned non-ze...原创 2020-03-01 00:28:18 · 12258 阅读 · 1 评论 -
Python print在控制台刷新输出不换行
记录coding日常遇到的小Tips问题场景:代码中需要根据情况在控制台输出进度,而且进度输出的次数不一定, 有时会输出很多行。需求:输出日志,只需要在控制台刷新进度值,不需要换行# -*- coding: utf-8 -*-import timedef demo(): print(">>> Start") for i in range(78...原创 2020-02-29 22:31:35 · 3400 阅读 · 0 评论 -
Python实现九九乘法口诀表及一点扩展 以文本相似度遍历为例
多数人在入门编程语言的时候, 都接触过用代码实现九九乘法口诀表。以便大家尽快熟悉列表的遍历。先手敲一遍正三角形# -*- coding: utf-8 -*-def multiplication_tables(): for i in range(1, 10): for j in range(1, i + 1): print('%d * ...原创 2020-02-26 23:41:10 · 425 阅读 · 0 评论 -
Python耗费时间秒转 天小时分钟秒 时间格式美化
在工作中经常会遇到将耗时 转换为天小时分秒的情况# -*- coding: utf-8 -*-def seconds_format(time_cost: int): """ 耗费时间格式转换 :param time_cost: :return: """ min = 60 hour = 60 * 60 day = 60 ...原创 2020-02-26 23:14:34 · 1815 阅读 · 0 评论 -
Python模块之 difflib 文本对比 html文件生成 一致性对比 文本差异对比
Python 内置的 difflib库为计算文本差异, 对比一致性的辅助工具写个小样# -*- coding: utf-8 -*-from pprint import pprintfrom difflib import Differ, SequenceMatcher, HtmlDiffdef diff_compare(in_lines1: list, in_lines2: lis...原创 2020-02-25 21:47:09 · 3546 阅读 · 2 评论 -
Python生成Wifi二维码 一键联网
前言每次家里来了朋友, 总是要问Wifi密码,你有没有遇到这样的场景:1、现在手机基本都保存了密码,平时不记,经常忘记2、密码设置的比较长,输入比较繁琐3、密码中有时会含有隐私的信息二维码生成现在跟我一起来生成一个Wifi联网二维码吧安装虚拟环境# 安装第三方库 segno# 支持Python2 & Python3pip install segnoWifi名称为...原创 2020-02-23 15:26:45 · 2325 阅读 · 0 评论 -
Python的Flask项目中获取请求用户IP地址 addr
服务器直接部署Flaskimport loggingfrom flask import Flask, render_template, request# Initialize the Flask applicationapp = Flask(__name__)# Default route, print user's IP@app.route('/')def index(): ...原创 2019-11-01 22:29:27 · 19751 阅读 · 4 评论 -
Python 获取当前文件 当前目录 上级目录 上上级目录
import os# 获取当前目录print(os.getcwd())print(os.path.abspath(os.path.dirname(__file__)))print(os.path.abspath('.'))# 获取当前文件print(os.path.abspath(__file__))# 获取上级目录print(os.path.abspath(os.path....原创 2019-10-31 22:59:00 · 3115 阅读 · 1 评论 -
Python 二维 list列表 转置转换 二维转一维 数组
二维 List列表转换(转置)方法一 zip()def test(): a = [[1, 2, 3], [4, 5, 6]] b = tuple(zip(*a)) c = list(zip(*a)) d = list(map(list, zip(*a))) print(b) # ((1, 4), (2, 5), (3, 6)) ...原创 2019-10-31 22:33:12 · 11874 阅读 · 0 评论 -
【设计模式】装饰器模式--Python实现装饰器--闭包
文章目录一、闭包1、什么是闭包?2、作用二、装饰器 Decorator1、 概念及特点1.1 装饰器概念1.2 遵循原则1.3 优点1.4 缺点1.5 使用场景1.6 注意事项1.7 装饰器(decorator)功能2、代码实现2.1 被装饰函数无参数 函数计时的装饰器:2.2 被装饰函数有参数 计时器2.3 被装饰的函数有不定长参数**设计模式(Design pattern)**代表了最佳...原创 2018-11-22 14:13:25 · 220 阅读 · 0 评论 -
【算法】Python实现快速排序--荷兰国旗问题及奇偶数快速划分
文章目录一、序言二、”荷兰国旗难题“问题描述三、问题分析四、荷兰过去问题Python代码实现五、奇偶数快速划分一、序言在使用partition-exchange排序算法时,如快速排序算法(即使选择了一个好的关键元素pivot values),我们往往面临一个很尴尬的境地:当排序对象中有很多重复的元素,partition-exchange排序算法表现很不尽如人意。当所有元素都相等时,这就特别...原创 2018-11-22 13:24:41 · 922 阅读 · 0 评论 -
Python多进程递归复制文件夹中的文件
import multiprocessingimport osimport reimport time# 源文件夹地址、目标文件夹地址SOUR_PATH = ""DEST_PATH = ""# 源文件列表 文件夹列表SOUR_FILE_LIST = list()SOUR_DIR_LIST = list()def traverse(source_path): """...原创 2018-11-21 20:07:15 · 792 阅读 · 0 评论 -
【算法】Python有序列表的二分法查找
二分法查找的思路先确定好列表nums的左边 left, 右边right,中间值mid 根据左边加上 右边减去左边的差除以2,即 left+ (right left) / 2。这种写法在Java中可以避免越界将目标值target与nums[mid]进行比对,这时候有3种结果:nums[middle] &gt; targetnums[middle] &lt; targetnums[midd...原创 2018-11-21 19:19:18 · 1430 阅读 · 2 评论 -
Python在Windows中开启虚拟环境设置方法
在PyCharm中, 可以通过选择解释器选择特定的虚拟环境。同时可以在Terminal中进入命令中进行操作。系统环境:Windows 10 专业版Python 3.6.5本案例电脑只安装了python3, 没有安装python2设置方法:1、 确认可以执行pip命令确认可以在Windows的cmd中, 以下执行命令。虚拟环境安装需要使用pip。pythonpip -V...原创 2018-11-03 19:52:50 · 11646 阅读 · 0 评论 -
【解决方案】ModuleNotFoundError: No module named 'win32api'
出现问题环境:Windows 10 专业版Python 3.6 虚拟环境Scrapy框架执行 scrapy crawl 项目名解决方法:安装依赖模块包pip install pypiwin32出现问题图片:解决问题图片:...原创 2018-11-03 15:17:30 · 3183 阅读 · 0 评论 -
斐波那契数列介绍及Python中五种方法斐波那契数列
Q:斐波那契数列为什么那么重要,所有关于数学的书几乎都会提到?A:因为斐波那契数列在数学和生活以及自然界中都非常有用。1. 斐波那契数列 概念引入斐波那契数列(Fibonacci sequence),又称黄金分割数列,因数学家列昂纳多·斐波那契(Leonardoda Fibonacci)以兔子繁殖为例子而引入,故又称为“兔子数列”。数学上,斐波那契数列以递归的形式进行定义:F0=0F...原创 2018-10-31 20:07:28 · 52439 阅读 · 12 评论 -
【Python】Windows中Python解释器下载安装及安装细节
Python解释器下载官网地址: https://www.python.org/选择适合自己的版本Python解释器安装第一步:选择install Now, 会安装在默认路径很深的位置。不建议选择。选择 第二个 安装, 勾选安装到环境变量path第二步:pip是后期使用安装扩展及第三方库的必备,一定要勾选。建议按照 图中显示勾选。第三步:第四步:第五步:...原创 2018-10-31 19:13:35 · 13643 阅读 · 0 评论 -
Python中打乱列表顺序 random.shuffle()的使用方法
之前自己一直使用random中 randint生成随机数以及使用for将列表中的数据遍历一次。现在有个需求需要将列表的次序打乱,或者也可以这样理解:【需求】将一个容器中的数据每次随机逐个遍历一遍。random.shuffle()方法提供了完美的解决方案。不会生成新的列表,只是将原列表的次序打乱# shuffle()使用样例import randomx = [i for i in r...原创 2018-10-23 10:08:29 · 59579 阅读 · 11 评论