Python基础知识
公众号菜鸟童靴
在不退步的同时,保持的一点点的进步,欢迎关注个人博客https://boyyongxin.github.io/
微信公众号:菜鸟童靴
展开
-
初识网络请求库 Httpx
简介HTTPX 是最近 GitHub看的到一个比较火的一个项目,根据官网的描述,总结有如下特点: 和使用 requests 一样方便,requests 有的它都有 加入 HTTP/1.1 和 HTTP/2 的支持。 能够直接向 WSGI 应用程序或 ASGI 应用程序发出请求。 到处都有严格的超时设置 全类型注释 100% 的测试覆盖率 比较不错的一个特点是全类型注解,这让我想起了一个叫Starlette的库,它也是全类型注解的,类型注解主..转载 2020-12-14 18:45:28 · 443 阅读 · 1 评论 -
python requests爬虫如何print http raw请求?
1、前言 hello,各位码友,最近冷空气有点飕飕的,可得注意防寒,穿秋裤出来暖场,千万别取暖靠抖了。前面几篇咱们一直在selenium系列,咱们今天讨论一点其他的。 进入正题。大家一般都使用python的requests库进行爬虫开发,在很多情况下,我们代码写好了,运行起来总是得不到想要的结果,要么是headers字典里面少加了点特定的键值,要么是忘了带cookie,还有就干脆发送的数据body或者query string有问题。2、问题 我们的问题在于如何记录原始的http请求,以转载 2020-12-09 20:29:19 · 932 阅读 · 0 评论 -
python之位运算
位运算,计算机内所有的数都以二进制存储,位运算就是对二进制位的操作位运算符 说明 << 按位左移,左移n位相当于乘以2的n次方 >> 按位右移 ,左移n位相当于除以2的n次方 & 按位与,二进制位数同且为1结果位为1 l 按位或 ,二进制位数或有1结果位为1 ^ 按位异或 ,二进制位数不同结果位为1 ~ 按位取反,二进制位0和1结果位互换 按位左移例子a=11b=a<<3原创 2020-12-01 11:32:32 · 292 阅读 · 0 评论 -
初识 Asyncio 教程
原文:https://segmentfault.com/a/1190000008814676所谓「异步 IO」,就是你发起一个 IO 操作,却不用等它结束,你可以继续做其他事情,当它结束时,你会得到通知。Asyncio 是并发(concurrency)的一种方式。对 Python 来说,并发还可以通过线程(threading)和多进程(multiprocessing)来实现。Asyncio 并不能带来真正的并行(parallelism)。当然,因为 GIL(全局解释器锁)的存在,Python 的原创 2020-11-28 12:55:36 · 216 阅读 · 0 评论 -
python代码重构优化的一些方法
【导语】:对自己写的冗长代码,想重构但又无思路?小编整理了介绍python代码重构优化的一些方法,助你一臂之力。编写干净的 Pythonic 代码就是尽可能使其易于理解,但又简洁。所以重构代码让代码简洁易理解是很有必要的。本文重点是想跟大家探讨为什么这些重构是好想法,而不仅仅是如何做。1. 合并嵌套的 if 条件太多的嵌套会使代码难以理解,这在 Python 中尤为如此,因为 Python 没有括号来帮助区隔不同的嵌套级别。阅读深度嵌套的代码容易让人烦...转载 2020-11-18 12:06:28 · 310 阅读 · 1 评论 -
Python 直接赋值、浅拷贝和深度拷贝解析
Python 直接赋值、浅拷贝和深度拷贝解析分类编程技术 直接赋值:其实就是对象的引用(别名)。 浅拷贝(copy):拷贝父对象,不会拷贝对象的内部的子对象。 深拷贝(deepcopy):copy 模块的 deepcopy 方法,完全拷贝了父对象及其子对象。 字典浅拷贝实例实例>>>a = {1: [1,2,3]} >>> b = a.copy() >>> a, b ({1: [1, 2, 3]}, {1: ..转载 2020-08-01 18:12:55 · 141 阅读 · 0 评论 -
python统计电脑内存,cpu,磁盘使用情况
import psutil # pip install psutil# 获取本机磁盘使用率和剩余空间G信息def get_disk_info(): # 循环磁盘分区 content = "" for disk in psutil.disk_partitions(): # 读写方式 光盘 or 有效磁盘类型 if 'cdrom' in disk.opts or disk.fstype == '': continue .原创 2020-07-24 11:18:50 · 1304 阅读 · 0 评论 -
python模块之psutil详解
python模块之psutil详解目录python模块之psutil详解 简介 功能函数 CPU相关: Memory内存相关: Disk相关: Network相关: 进程管理 简介psutil是一个开源切跨平台的库,其提供了便利的函数用来获取才做系统的信息,比如CPU,内存,磁盘,网络等。此外,psutil还可以用来进行进程管理,包括判断进程是否存在、获取进程列表、获取进程详细信息等。而且psutil还提供了许多命令行工具提供的功能,包括:ps,...转载 2020-07-24 11:12:27 · 772 阅读 · 0 评论 -
Flask 的 jsonify 和 普通的json有什么不同
聊一聊 Flask 的 jsonify首先我们来看一段 Python 代码from flask import Flask, jsonifyapp = Flask(__name__)tasks = [ { 'id': 1, 'title': u'订阅 python_mastery 专栏', 'description': u'专栏Link: https://xiaozhuanlan.com/python_mastery' }.转载 2020-07-23 14:20:42 · 260 阅读 · 0 评论 -
python中HTML文档转义与反转义方法介绍
在网页抓取的过程中,往往会遇到一些转义字符,特别是文章内容里面。这种情况很让人反感,那么,应该如何处理这些转移字符,也就是反转义回去呢?unescape()方法python3中使用html包里面的unescape()方法可以解决!源文档反转义回去后当然,与unescape()方法相对应的方法是escape()方法escape()方法源文档转义之后...转载 2020-06-18 14:15:03 · 470 阅读 · 0 评论 -
Python AES加密 与 JS AES加密
import execjsfrom Crypto.Cipher import AESfrom binascii import b2a_hex, a2b_hex def js_aes(text): jscode = """ function encryptByAES(pwd) { var cryptoJS = require("crypto-js"); let i = cryptoJS.enc.Utf8.parse("12345678.原创 2020-06-17 18:08:50 · 621 阅读 · 0 评论 -
mac如何找到python pip包的安装路径和配置python的全局变量
今天遇到一个问题,要找到pip安装的包的路径,之前一般都是用pip list这些命令看看有哪些安装包,但不清楚安装路径在哪里。查了好久居然没查到。后来知道了这个方法。如图,我用的是python3, 所以在当前目录下运行python3,然后import要查看路径的包,再输入包的名称,即可查看安装路径了这样我么就找到的python的安装路径了,我们进入该目录下看到的bin目录,直接配置环境变量就OK了1、Vim ~/.bash_profile2、## 配置python环境变量..原创 2020-06-17 16:04:32 · 3489 阅读 · 0 评论 -
简单学习Python中IO编程-StringIO和BytesIO
from io import StringIO# StringIO:在内存中读写strfrom io import StringIOf = StringIO()print(f.write('hello'))print(f.write(' '))print(f.write('world!ss'))# getValue()方法用于获取写入的strprint(f.getvalue())print('-----------------------1')# 要读取StringIO,...原创 2020-05-28 13:42:39 · 361 阅读 · 0 评论 -
简单学习pillow处理图像
import timefrom io import BytesIOfrom PIL import Image# 打开图片im = Image.open('./captcha1.png')# im.show()# 图片信息print(im.format, im.size, im.mode)# 剪切 需要传入一个x0,y0,x1,y1 的集合ret = 200, 0, 300, 50im.crop(ret).show()# 缩略图 很明显制作缩略图会覆盖原图片对象。 ..原创 2020-05-28 13:16:10 · 291 阅读 · 0 评论 -
Python进阶之_repr_方法
repr_方法是Python类中的一个特殊方法,由于object类已经提供了该方法,而所有的Python类都是object类的子类,所以所有的Python对象,都具有_repr_方法class test: def __init__(self,name,age): self.age = age self.name = namet = test("Zh...原创 2020-05-10 21:51:53 · 1259 阅读 · 1 评论 -
Python进阶之atexit模块使用
微信搜索“菜鸟童靴”,选择“关注公众号”我们一起开启Python进阶之旅!如何让Python在退出时强制运行一段代码,说起这个需求,我们就不得不说Python atexit模块了:退出处理器 atexit 模块定义了清理函数的注册和反注册函数. 被注册的函数会在解释器正常终止时执行. atexit 会按照注册顺序的逆序执行; 如果你注册了 A, B 和 C, 那么在解释器终止时会依序执行 C, B, A.看完这段介绍,有点类似栈的原理,后进先出1、举个例子说明...原创 2020-05-10 19:41:47 · 3131 阅读 · 1 评论 -
FastAPI 学习之两种应用场景
原创菜鸟童靴菜鸟童靴4天前fastapi介绍FastAPI 文档https://fastapi.tiangolo.com/FastApi 是一个异步 Web 框架,它的速度非常非常非常快。远远超过 Flask。速度可以匹敌 Golang 写的接口有官方的docker 镜像,方便用docker部署安装:1、安装FastAPI模块pip install...原创 2020-04-05 11:01:26 · 2027 阅读 · 0 评论 -
python如何下载MP4视频和获取时长
我们做爬虫工作时,经常会遇到要把爬取的视频下载到本地做存储,那么我们如何使用python去下载视频呢,下载视频不是本文章的重点,在此废话不多说,直接上完整的代码:def download_file(url, base_path, filename='', call_func=''): file_path = base_path + filename directory = o...原创 2020-03-30 23:12:57 · 2217 阅读 · 0 评论 -
python init.py 文件的作用以及意义
init.py 文件的作用以及意义介绍一:这个文件(这个文件定义了包的属性和方法)其实它可以什么也不定义;可以只是一个空文件,但是必须存在。如果 init.py 不存在,这个目录就仅仅是一个目录,而不是一个包,它就不能被导入或者包含其它的模块和嵌套包。或者可以这样理解。这样,当我们导入这个包的时候,init.py文件自动运行。帮我们导入了这么多个模块,我们就不需要将所有的impo...原创 2019-12-10 11:09:17 · 637 阅读 · 0 评论 -
正则re.escape用法,对特殊字符串格式化
需求:提取的字符串里面存在特殊的符号,这些符号在正则表达式里面有特殊的意义,有使用的规范,不能随意使用。逐一x.replace('+', '\+').replace('.', '\.').replace('*', '\*')...?那么多字符串你怎么知道有哪些特殊字符串?what to do?别急客官,热乎乎的干货来了。。。。。。。。。。。。。。Pyth...原创 2019-12-09 15:48:25 · 2925 阅读 · 0 评论 -
python字典读取不报错
一说起字典中获取数据,我去这多简单小案例上来:#方法一from jsonpath import jsonpathss = {"a":1,"b":2}result = jsonpath(ss,"$..a")[0]print(result)#方法二from glom import glomresult = glom(ss,'a')print(result)#方法三re...原创 2019-12-06 13:54:47 · 1639 阅读 · 0 评论 -
python 常用常量字符串可以用string模块这么写,无需手动写
实现:从24个小写字母中随机选择一个字母的时候,我是这样写代码的:import randomletter = random.choice('qwertyuiopasdfghjklzxcvbnm')后来,我知道了,原来代码可以这样写:import randomimport stringletter = random.choice(string.ascii_lo...原创 2019-12-05 15:59:47 · 337 阅读 · 0 评论 -
Python 抽象类原理以及编写
1.抽象类概念抽象类是一个特殊的类,只能被继承,不能实例化2.为什么要有抽象类其实在未接触抽象类概念时,我们可以构造香蕉、苹果、梨之类的类,然后让它们继承水果这个的基类,水果的基类包含一个eat函数。但是你有没有想过,我们可以将香蕉、苹果、梨实例化,去吃香蕉、苹果、梨。但是我们却不能将水果实例化,因为我们无法吃到叫水果的这个东西。所以抽象类中只能有抽象方法(没有实现功能),该类...原创 2019-11-27 13:32:05 · 329 阅读 · 0 评论 -
python2和python3切换
python版本切换方式一:原来我是用环境变量的优先级,来进行切换python2和python3的但每次切换python程序的时候都要去设置环境变量的优先级,比较麻烦,所以今天再介绍一下另外一种便捷方式python版本切换方式2:(1)需要将python2和python3的环境变量设置好(2)重命名主程序然后我们分别把两个版本的 Python 主程序 exe 改...原创 2019-11-26 16:24:29 · 557 阅读 · 0 评论 -
python 调用java 代码
前言 开发Python程序,需求中需要用到Java代码,Python作为“胶水”语言能够很好的实现这种需求。具体实现的过程如下: 1.环境准备 2.环境搭建 3.实验1.环境准备 我实验过的两种搭配,都成功了,其他的搭配方式没有实验过不敢做过多的陈述,这里以搭配一为实验基础进行描述。 搭配一:windows 7(64位)+JDK(32位)+Py...转载 2019-11-18 12:13:42 · 456 阅读 · 0 评论 -
python类中的self参数和cls参数
1. self表示一个类的实例对象本身。如果用了staticmethod就无视这个self了,就将这个方法当成一个普通的函数使用了。2. cls表是这个类本身。# 代码为证class A(object): def func1(self): print("func1:", self) @staticmethod def func2(): ...原创 2019-11-15 12:53:48 · 866 阅读 · 0 评论 -
笔记_python库jpype安装和使用,及如何打包java程序供Python调用
(一)Python3.7 Jpype安装使用命令直接安装pip install jpype1(二) 测试jpype是否安装成功# *_*coding:utf-8 *_*import jpype#手动配置# jvmPath = r'C:\Program Files\Java\jre1.8.0_91\bin\server\jvm.dll'# jpype.startJVM...原创 2019-11-14 12:42:42 · 935 阅读 · 0 评论 -
Python assert 断言函数
使用assert断言是学习python一个非常好的习惯,python assert 断言句语格式及用法很简单。在没完善一个程序之前,我们不知道程序在哪里会出错,与其让它在运行最崩溃,不如在出现错误条件时就崩溃,这时候就需要assert断言的帮助。本文主要是讲assert断言的基础知识。python assert断言的作用python assert断言是声明其布尔值必须为真的判定,如果发生异...转载 2019-11-14 09:46:25 · 558 阅读 · 0 评论 -
Python将字符串转换成字典
1.astimport astuser_info = '{"name" : "南湖", "gender" : "male", "age": 28}'user_dict = ast.literal_eval(user_info)# 结果如下:来自Spdyer(python 3.7)2. 通过json格式转换import jsonuser_info = '{"name...原创 2019-11-13 17:03:55 · 424 阅读 · 0 评论 -
python 字节和字符串的相互转换
在使用 Python 做网络编程的时候难免会遇到字符串与字节流的转换,这里我们记录以下几种常用的方法:首先是字节串转字符串,也就是str:b = b'some byte array'str(b, encoding = "utf-8") 或者bytes.decode(b)然后是字符串转为字节串:s = 'some string'bytes(s, encoding = ...原创 2019-11-13 13:01:44 · 1003 阅读 · 0 评论 -
会Python的你,还在用print()输出吗?
今天给大家介绍一个Python很好用的log输出from loguru import logger安装 pip install loguru使用起来也非常简单:from loguru import loggerheaders = { "Host": "it.snssdk.com",}logger.info(headers)输出结果:哈哈,看着是...原创 2019-11-13 10:08:08 · 780 阅读 · 0 评论 -
笔记—Python带有时区时间,格式化处理问题
问题1:往常小编遇到的带时区的时间格式都是这样的release_time = 'Wed Nov 14 15:38:55 +0800 2018'这种的时间怎么格式化我们想要的呢?首先我们要学习点基础的知识关于 datatime库的%y 两位数的年份表示(00-99)%Y 四位数的年份表示(000-9999)%m 月份(01-12)%d 月内中的一天(0-31)...原创 2019-11-07 15:57:52 · 7988 阅读 · 0 评论 -
Python 对象垃圾回收机制
python采用的是引用计数机制为主,标记-清除和分代收集两种机制为辅的策略。引用计数Python语言默认采用的垃圾收集机制是『引用计数法Reference Counting』,该算法最早George E. Collins在1960的时候首次提出,50年后的今天,该算法依然被很多编程语言使用。 『引用计数法』的原理是:每个对象维护一个ob_ref字段,用来记录该对象当前被引用的次数,每...转载 2019-10-14 15:43:16 · 180 阅读 · 0 评论