![](https://img-blog.csdnimg.cn/20201014180756928.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Python
文章平均质量分 64
Thomas_Lean
这里只记录总结技术经验,有任何错误尽管提出哈
展开
-
解决Python字符串拼接原生SQL,带单双引号或者斜杠出错的问题
1.如果是单双引号,不需要保留的情况下可以直接替换成空。以上就是由于在字符串拼接时单引号被转义导致的问题。2.特殊字符或者斜杠。原创 2023-02-23 14:19:52 · 2272 阅读 · 1 评论 -
10 个 Python 脚本来自动化你的日常任务(转)
好文转载转载 2023-02-03 16:33:42 · 800 阅读 · 0 评论 -
Python利用opencv给图片加水印
给图片加水印有时候为了注明出处或者版权问题,需要在图片或者视频加上水印,今天先讲怎么给图片加水印!安装opencv库注意不是这样安装:pip install opencv以上安装方式会提示错误:Collecting opencv Could not find a version that satisfies the requirement opencv (from versions: )No matching distribution found for opencv正确安装如下:原创 2021-07-05 14:33:07 · 546 阅读 · 0 评论 -
企业微信webhook使用
用企业微信作为公司办公软件的公司有需要如果需要监控或者定时提醒业务就可以使用企业微信自带的机器人工具作为消息的发起者!添加机器创建一个至少3个人的群聊。如果只是为了加机器人可以先拉人进群随后将其他人剔除即可,这个设计还是有点鸡肋啊,如果我就想给自己通知消息暂时都采取这种方式。添加完群聊就可以在群设置里面添加机器人,设置完成后即可看到机器人,如果想让机器人发消息,只需要post请求机器人的webhook地址。发送消息也可以打开机器人里面也有相关demo实例。import requestsimpo原创 2021-06-23 16:06:56 · 11507 阅读 · 0 评论 -
Python重构 - 第4部分
编写干净的 Python 代码就是要使其尽可能易于理解且简洁。后期便于维护,代码约简洁越好维护,bug就越好排查。将重复的代码提取到一个方法中不要重复自己 (DRY) 是编写干净、可维护代码的重要原则。重复的代码使代码库膨胀,使其更难阅读和理解。它也经常导致错误。如果仅在某些重复区域中进行更改,则经常会出现意外行为。消除重复的主要方法之一是将公共区域提取到另一种方法中并调用它。def extraction_example(): self.speed_slider = Scale(原创 2021-06-23 15:53:36 · 176 阅读 · 0 评论 -
Python重构 - 第3部分
编写干净的 Python 代码就是要使其尽可能易于理解且简洁。后期便于维护,代码约简洁越好维护,bug就越好排查。使用 str.join() 而不是 for 循环在 Python 中连接字符串最直接的方法是使用+ 运算符:hat_description = hat.colour + hat.type当您将少量字符串连接在一起时,这非常好(尽管 f 字符串是处理更复杂字符串的最佳选择)。当它们用于连接大型字符串列表时,就会出现使用+or的问题+=。例如,您可以像这样在 for 循环中使用它们:a原创 2021-06-15 16:47:33 · 147 阅读 · 0 评论 -
Python格式化时间 - locale使用
之前在爬取后跨境电商平台的数据时,采集的时间需要进行数据清洗,但是由于时间格式多样性,就需要采用修改时区的方式对时间进行格式化处理!常见的格式如下:美国时区:June 11, 2021德国时区:19. Dezember 2020英国时区:05 March 2021除了以上三种格式还会有其他时间格式!设置时区如果在设置时区过程中出现以下错误:>>> import locale>>> locale.setlocale(locale.LC_ALL,原创 2021-06-11 16:03:15 · 807 阅读 · 3 评论 -
Python重构 - 第2部分
编写干净的 Python 代码就是要使其尽可能易于理解且简洁。后期便于维护,代码约简洁越好维护,bug就越好排查。'with’打开文件时使用以确保关闭在 Python 中打开和使用文件的常用方法是:file = open("welcome.txt")data = file.read()print(data)file.close() # 这里一定要close但是,如果在打开和关闭文件之间抛出异常,则最终可能会跳过对 file.close() 的调用。解决此问题的一种方法是使用这样的代码。这里的原创 2021-06-09 13:57:22 · 310 阅读 · 3 评论 -
通过Flask的request对象获取url
flask开发过程中,有时候需要获取当前请求url的相关数据,那么可以用以下方式获取url!!flask测试请求地址:http://127.0.0.1:5000/main/index?page=10实例如下:from flask import request@main.route('/main/index', methods=['GET', 'POST'])@login_requireddef index(): host_url = request.host_urlrequest更多方法:原创 2021-06-01 11:34:58 · 4605 阅读 · 0 评论 -
datetime时间模块相关用法
https://docs.python.org/zh-cn/3/library/datetime.html#date-objectsdate用法一datetime.date(year, month, day)正确实例:>>> from datetime import date>>> date(2020,9,4)datetime.date(2020, 9, 4)错误实例:>>> date(2020,09,04) File "&原创 2021-04-27 16:24:16 · 903 阅读 · 0 评论 -
docker 打包项目后无法链接redis
首先需要安装redis,使用docker安装redis教程如下:1.查找可用版本docker search redis2.拉取镜像docker pull redis:latest3.查看镜像docker images4.安装镜容器docker run -itd --name redis-test -p 6379:6379 redis说明:-p 6379:6379:映射容器服务的 6379 端口到宿主机的 6379 端口。外部可以直接通过宿主机ip:6379 访问到 Redis 的服原创 2021-04-09 09:52:02 · 1177 阅读 · 0 评论 -
python 解决mysql where in 对列表(list,,array)问题
其实在很多实际开发中都会用到where xxx in (list)的查询语句进行数据查询,一般接口传参为了方便都会直接传递数组,那么该如何快捷的格式化sql语句呢实例:SELECT * FROM test where status='SUCESS' and operator_id in ('5122','5123');前台传给过来的参数:{ "status": "SUCESS", "operator_id": ['5122','5123']}格式化:filter_ret = ','.j原创 2021-04-08 16:36:26 · 2125 阅读 · 0 评论 -
python调用JS方法实例
安装插件pip install pyexecjs直接安装可能会出错:C:\Users\Administrator>pip install execjsCollecting execjs Retrying (Retry(total=4, connect=None, read=None, redirect=None, status=None)) after connection broken by 'SSLError(SSLError(1, '[SSL: CERTIFICATE_VERIFY原创 2021-02-26 14:50:16 · 448 阅读 · 2 评论 -
python flask项目配置以及动态注册蓝图
已经挺久没做flask开发了,现在主要为了给大家分享一些关于之前flask项目开发的经验总结,希望对大家有所帮助!flask启动项目里的初始化文件一般包括,初始化app,初始化配置config,注册蓝图等步骤!最中规中矩的方式就是每次新增一个新的模块就在初始化文件中手动加两行代码用于蓝图的注册!项目配置文件config.py:其中SECRET_KEY一定要设置,且最好为随机数,可以防止csrf,不然会出现 Must provide secret_key to use csrf 错误提醒!# -*-原创 2021-01-25 14:45:49 · 1902 阅读 · 1 评论 -
selenium自动化加载chrome插件
安装插件访问google插件商店: 点击此处前往最好网络可访问google,否则可能打不开!查看安装路径1.在浏览器输入:chrome://extensions/ 可查看已经安装的插件,如下图:2.在浏览器输入:chrome://version 查看插件在本地的安装路径,如下图:实例from selenium.webdriver.chrome.options import Optionsfrom selenium import webdriverfrom selenium.webdr原创 2021-01-13 10:25:59 · 7607 阅读 · 2 评论 -
实测docker安装、打包镜像、上传到docker远程仓库
先决条件:在linux下实现安装好docker环境1.在centOS下部署一个简单的flask项目文件start.py,如下:项目目录:/home/www/testfrom flask import Flaskapp = Flask(__name__)@app.route('/')def test(): return 'This is Flask!'if __name__ == '__main__': app.run(host='0.0.0.0', port=8080)原创 2020-12-17 17:30:42 · 3991 阅读 · 0 评论 -
轻松搞定python多线程和多进程
本文转自出自:作者:what is fantasy链接: https://www.cnblogs.com/whatisfantasy/p/6440585.html 1 概念梳理:1.1 线程1.1.1 什么是线程线程是操作系统能够进行运算调度的最小单位。它被包含在进程之中,是进程中的实际运作单位。一条线程指的是进程中一个单一顺序的控制流,一个进程中可以并发多个线程,每条线程并行执行不同的任务。一个线程是一个execution context(执行上下文),即一个cpu执行时所需要的一串转载 2020-12-16 15:44:51 · 412 阅读 · 0 评论 -
Python重构 - 第1部分
有时候回头看自己之前写的代码,觉得真的是不堪入目啊,哈哈哈,各种if嵌套,for循环一层又一层,代码过于冗长,代码看起来既不美观,又没啥可读性,甚至还影响运行速度。所以对于编写简洁、易于理解、可读性好的程序还是很有必要的,接下来总结一些常见的重构方法,希望借此自己总结一下经验,也顺便给大家分享一下!一、遇到多个if条件判断太多的嵌套会使代码难以理解,在Python中尤其如此,因为Python中没有括号来帮助描述不同的嵌套级别。阅读深层嵌套的代码令人困惑,因为您必须跟踪哪些条件与哪些级别相关。因此,我原创 2020-12-09 15:58:52 · 656 阅读 · 2 评论 -
5个python重构技巧以改进您的代码
[导语] 重构是在不更改代码功能的情况下提高代码质量的过程。在提交代码之前花一些时间来重构代码可以使代码更具可读性,从而更易于维护。持续执行此操作会发现错误,并从噩梦般的地狱场景添加新功能到公园散步。理想情况下,单元测试将完全覆盖您的代码,使您可以放心地进行更改。如果不是,那么应该尽可能在重构之前添加测试。但是,如果您无法添加测试,则仍然可以通过使用自动化,安全的重构工具来实现很多目标。那么从哪里开始呢?本文包含5件简单的事情,您可以立即做,以使您的代码更易读,更美观。一、删除注释掉的代码这是最翻译 2020-12-07 17:43:36 · 1699 阅读 · 0 评论 -
python链接Mysql写入数据报Python ‘_elementunicoderesult‘ cannot be converted to a MySQL type错误
有时候爬取页面数据直接用原生sql批量插入数据库会出现以下错误:Failed processing pyformat-parameters; Python '_elementunicoderesult' cannot be converted to a MySQL type这是因为通过lxml.etree获取到的字符串可能是_elementunicoderesult,这是Python中字符串的一种,直接把数据格式存入数据库并未将该类型变量转化为SQL对象的方法,因此需要强制转换为str类型,再进行数据原创 2020-11-17 10:39:19 · 1812 阅读 · 3 评论 -
成功解决pandas报AttributeError: DataFrame object has no attribute ix错误
在实际操作中有时候需要把采集的数据或者分析完的数据保存为excel中,列名按照执行排序,一开始我采用DataFrame的ix方式去实现是可以达到预期的,不过最近发现好像该方法函数被移除了,运行会抛出以下错误:Traceback (most recent call last): File "check_token.py", line 149, in <module> AdAccountManager(manage_log, path).refresh() File "check_原创 2020-10-26 11:01:26 · 24412 阅读 · 0 评论 -
Python爬虫之代理问题
对于从事爬虫的程序猿来说,反爬策略是必不可少的,其中添加请求头就是反爬的一种最为简单的策略。还有就是使用代理ip,说白了就是采集数据时采用不同的ip去访问你要采集数据的网址,可能很多人都会问为什么我需要用代理呢?不用不可以吗?用了代理之后发现爬虫抓取数据的速度反而下降了不少于是放弃爬虫代理的使用。当你抓取的数据达到一定量后,或者大批量采集时,你会发现程序会时不时给你报错,而且频率越来越来高。这说你的爬虫被人家识别出来了,对方的反扒系统已经记住了你。通常会告诉你连接超时、连接中断更有甚者不会直接中断你程序,它原创 2020-10-15 09:37:20 · 1286 阅读 · 0 评论 -
解决数据库unicode编码导致字符串读取问题
数据库设置编码为:utf8mb4_unicode_ci在业务上用数据库已经存储带空格的字符去对比真实输入带有空格的字符串数据,就会遇到表面上看过去一模一样,经过程序对比却是返回False例子:数据库可视化查询结果如下:用程序查询出来的结果:>>> data[('Free\xa0Pray')]这显然无法正常匹配的上,用unicodedata库即可解决该问题。解决方案:new_str = unicodedata.normalize("NFKD", unicode_str)原创 2020-09-04 16:00:56 · 958 阅读 · 0 评论 -
Flask异步操作实例
之前遇到过一个问题就是执行某个操作,也要对数据库进行读写,且数量较大,时间比较久,用户点击一个按钮,会卡很久才跳出完成或刷新页面,这显然不符合用户体验,可以说是体验很差,后来去了解了一些线程、好像一旦访问数据库就会报app不存在或未定义等错误。后来找到一个方法,但是一开始也不太懂的新建app,然后用原生态的sql命令对数据库进行增删改查,这虽然解决了页面卡顿问题,但是后台的增删改查操作却显得比较繁琐,很明显这也不太符合做开发。后来上网查阅资料,发现可以自己在该异步函数中新建一个app,即可访问数据库,但好像原创 2020-08-28 09:47:18 · 1344 阅读 · 0 评论 -
Facebook 应用开发认证和授权登录流程
前段时间由于工作需要,对fb授权登陆并获取对应的访问令牌(access_token),即授权登陆!调研了facebook应用开发相关事项,阅读官方API文档, 并整理资料与大家分享。本文是关于facebook认证和授权方面的资料整理,结合自己的实际测试总结该文章,希望对大家有所帮助!Facebook 平台使用OAuth2 协议作为认证和授权协议,它有两种认证流程,服务器端流程(Server-Sizde Flow)和客户端流程(Client-Side Flow), 这些认证流程可被用于开发网站应用,移动应用原创 2020-07-30 09:15:37 · 9061 阅读 · 2 评论 -
Python使用logging模块实现日志记录实例
logging模块简介logging模块是Python的一个标准库模块,开发过程中,可以通过该模块,灵活的完成日志的记录。logging模块提供了两种记录日志的方式:1)使用logging提供的模块级别的函数(logging.basicConfig,logging.debug,logging.info…)2)使用logging模块的组件(loggers,handlers,filters,formatters)Python logging日志级别表 1 Python logging日志级别原创 2020-07-29 14:34:15 · 1206 阅读 · 1 评论 -
python实现词频统计并展示
一篇文章如何可以快速锁定核心内容,可以初步用文章中出现频次最高的词语作为文章的核心。那有什么办法快速展示呢?下面就以一篇AI人工智能的文章作为测试文件,测试结果如图:1、想要实现该效果,首先需要先安装好python,然后还需要在自己的电脑安装以下几个插件:pip install re # 正则表达式库pip install collections # 词频统计库pip install numpy # numpy数据处理库pip install jieba # 结巴分词pip instal原创 2020-07-07 09:24:44 · 4116 阅读 · 0 评论 -
python2.x/python3.x安装及如何设置python默认版本
1.查看当前默认的Python版本[root@docker ~]# pythonPython 3.6.8 (default, Apr 19 2020, 23:57:12) [GCC 4.8.5 20150623 (Red Hat 4.8.5-39)] on linuxType "help", "copyright", "credits" or "license" for more information.>>> 2.查看python安装路径:[root@docker ~]#原创 2020-07-05 20:24:28 · 493 阅读 · 0 评论 -
Python之字符串格式化
有时候在实际开发当中,需要执行原生sql语句或者想打印某些带变量参数的字符串,那么就需要对字符串进行格式化处理!字符串格式化的种类‘+’ 加法拼接方式% 格式符方式format 方式f 方式1、加法拼接>>> name = 'Thomas'>>> data = 'My name is ' + name>>> data'My name is Thomas'2、% 格式符方式%s :占位符 str()%d :十进制 整数%原创 2020-07-03 14:32:30 · 471 阅读 · 0 评论 -
python 学习笔记(下)
1、分别从前端、后端、数据库阐述web项目的性能优化前端优化:1、减少http请求、例如制作精灵图2、html和CSS放在页面上部,javascript放在页面下面,因为js加载比HTML和Css加载慢,所以要优先加载html和css,以防页面显示不全,性能差,也影响用户体验差##### 后端优化: 1、缓存存储读写次数高,变化少的数据,比如网站首页的信息、商品的信息等。应用程序读取数据...原创 2020-06-09 09:15:31 · 326 阅读 · 0 评论 -
python 学习笔记(上)
1、利用collections库的Counter方法统计字符串每个单词出现的次数>>> from collections import Counter>>> f=Counter(d)>>> fCounter({'l': 9, ';': 6, 'h': 6, 'f': 5, 'a': 4, 'j': 3, 'd': 3, 's': 2, ...原创 2020-06-09 09:10:52 · 532 阅读 · 0 评论 -
python爬虫采集反爬策略
一、爬虫与反爬简介爬虫就是我们利用某种程序代替人工批量读取、获取网站上的资料信息。而反爬则是跟爬虫的对立面,是竭尽全力阻止非人为的采集网站信息,二者相生相克,水火不容,到目前为止大部分的网站都还是可以轻易的爬取资料信息。爬虫想要绕过被反的策略就是尽可能的让服务器人你不是机器程序,所以在程序中就要把自己伪装成浏览器访问网站,这可以极大程度降低被反的概率,那如何做到伪装浏览器呢?##### 1....原创 2020-05-19 09:31:24 · 2639 阅读 · 1 评论 -
Pandas之入门小案例
刚好现在做测试的同事需要实现一个小功能,就是事先创建一个只有表头的excel表,后面需要传入一个列表,并判断是否存在表头中,如果存在则在该列下面标注’OK’,不存在则标记’X’!很简单的例子。安装pip install pandas==1.0.0原本表格:处理后表格:读取excel文件data = pd.read_excel(path, sheet_name=False, index=False)由于一开始所有列除了标题均为空,所以需要给各列赋空列表:header = set(dat原创 2020-05-15 17:11:04 · 1151 阅读 · 0 评论 -
安装Pandas报ImportError: DLL load failed: 找不到指定的模块的错误
安装命令:pip install pandasC:\Users\user>pip install pandasCollecting pandas Using cached https://files.pythonhosted.org/packages/d2/81/a1514c993ad8261a2053f356c3ea9a6ad41871a09a8ef9cf46789e371a63/pandas-1.0.3-cp36-cp36m-win_amd64.whlCollecting numpy&原创 2020-05-14 14:38:49 · 6801 阅读 · 5 评论 -
浅谈fastAPI框架及其实例讲解
技术背景:Py3.6+,Starlette,Pydantic安装插件fastapipip install fastapi安装启动插件pip install uvicorn简单实例在根目录创建项目文件main.py:from fastapi import FastAPIapp = FastAPI()@app.get("/")def read_root(): return {"我的第一个FastAPI": "Hello World!"}@app.get("/test/原创 2020-05-14 11:29:45 · 6806 阅读 · 0 评论 -
浅谈python多线程与多进程
多线程爬虫从事爬虫工作的程序猿都会遇到有时候页面较多、下载图片等比较耗时的情形,如果只采用传统的方式一个接一个的爬取,那将大大加大采集时间成本,显然不是我们想要的,那么就可以采用多线程的方式分布式采集。什么是多线程简单通俗的可以理解为:同等量的工总量多人同时进行,相对于一个人做,便可以极大提升效率,也就是说线程是在同一时间需要完成多项任务,但是多线程的出现就是为了提高效率。同时它的出现也带来...转载 2020-05-05 16:29:35 · 653 阅读 · 0 评论 -
Python爬虫之利用cookies跳过登陆验证码
在大数据时代,很多人会利用爬虫对网上一些数据进行采集,但有些网站为了反爬会出一些策略,在爬取某些网页时,登陆界面时经常遇到的一个坎,而现在大多数的网站在登陆时都会要求用户填写验证码,验证码的形式多种多样,例如静态图片、动态验证码、滑动、12306验证模式、甚至还用上短信验证码。虽然现在技术也可以解决图片识别,但万一网站改了验证方案,那么整套算法都有可能被推翻,很显然强行破解验证码是一个吃力不讨好...原创 2020-04-28 11:59:44 · 5735 阅读 · 0 评论 -
python定时任务APScheduler
作者:学一点也是好出处: https://www.cnblogs.com/mangM/p/11187015.htmlAPScheduler定时任务APScheduler 支持三种调度任务:固定时间间隔,固定时间点(日期),Linux 下的 Crontab 命令。同时,它还支持异步执行、后台执行调度任务。一、基本架构#1.触发器 triggers:设定触发任务的条件描述一个任务...转载 2020-04-28 09:14:24 · 1386 阅读 · 0 评论 -
POST发送请求报错及解决方案(parameter must be a JSON array)
目的:基于Facebook-API复制已创建的广告系列(Campaign Copies)并重命名!!初始请求方式:根据facebook官方给出的请求方式:curl -Fcurl -F 'access_token=<access_token>'\ -F 'asyncbatch=[{"method":"POST","relative_url":"<campaign_i...原创 2020-04-24 13:12:05 · 3546 阅读 · 0 评论 -
python不同版本安装虚拟环境
主机安装了python2跟python3,为了符合开发需求,需要搭建不同版本的虚拟环境!!具体操作如下:1.前提条件:pip install virtualenv2.python3:python3 -m venv venv或virtualenv -p python3 venv3.python2:virtualenv -p python2 venv...原创 2020-04-23 11:39:35 · 835 阅读 · 0 评论