Python基础知识
西门大盗
技能提升,分享价值
展开
-
python中,多层级排序(如:对列表中的元素进行多层级排序)
主要用到sorted函数和ord函数如下例子:需求是先对age进行从小到大排序,再根据time从大到小排序。one_list = [{'age':22,'time':'2020-11-11 08:05:06'},{'age':11,'time':'2020-11-11 12:05:06'},{'age':22,'time':'2020-11-10 08:05:06'}] new_list = sorted(one_list,key=lambda keys:(keys['age'],[-or原创 2020-12-09 11:07:45 · 1499 阅读 · 0 评论 -
python 对列表中的字符串进行排序
主要用到ord函数。什么是ord函数:ord() 函数是 chr() 函数(对于8位的ASCII字符串)或 unichr() 函数(对于Unicode对象)的配对函数,它以一个字符(长度为1的字符串)作为参数,返回对应的 ASCII 数值,或者 Unicode 数值,如果所给的 Unicode 字符超出了你的 Python 定义范围,则会引发一个 TypeError 的异常。返回值返回值是对应的十进制整数。>>>ord('a')97>>> ord原创 2020-12-09 10:50:59 · 2718 阅读 · 0 评论 -
用python代码post请求,发送一张图片信息的脚本demo
如果要用python代码完成post一张图片,基本的写法如下:import requestsimport base64with open('sfsfsfs.jpg','rb') as f: img = f.read()res = requests.post('https://xxxxxx.com',data = {'img':base64.b64encode(img)})...原创 2020-03-05 17:43:15 · 716 阅读 · 0 评论 -
python中定义类加不加object,加不加(),新式类,经典类
定义一个类时,不加object,称为经典类,加了object,称为新式类注意,python3.6后,在功能上已经没有经典类和新式类的区分。都是广度优先原则。也就是说class A: 等价于class A():等价于class A(objejct):下面一个例子 来说明调用的原则:class A(object): def foo(self):...原创 2020-02-29 10:53:21 · 3153 阅读 · 0 评论 -
python中操作迭代对象的函数itertools(太好用啦)
itertools是什么?提供了非常有用的用于操作迭代对象的函数。itertools都有哪些功能?几个“无限”迭代器:count() 无限提取:>>> import itertools>>> natuals = itertools.count(1)>>> for n in natuals:... print(...原创 2020-02-14 15:25:08 · 306 阅读 · 0 评论 -
python中,对*args,**kwargs的理解
*args表示任何多个(不确定个数)的无名参数,它会把传进来的参数,变成一个tuple(将参数打包成tuple给函数体调用)。如果不确定要往函数中传入多少个参数,或者我们想往函数中以列表或元组的形式传参数时,那就使用args示例:def function(x, y, *args): print(x, y, args)function(1, 2, 3, 4, 5)#1...原创 2020-01-14 16:44:34 · 294 阅读 · 0 评论 -
深入理解python中抽象类的概念
1什么是抽象类抽象类是一个特殊的类,只能被继承,不能实例化2为什么只能被继承,不能实例化有个例子很好地说明了这点。我们可以构造香蕉、苹果、梨之类的类,然后让它们继承水果这个的基类,水果的基类包含一个eat函数。但是你有没有想过,我们可以将香蕉、苹果、梨实例化,去吃香蕉、苹果、梨。但是我们却不能将水果实例化,因为我们无法吃到叫水果的这个东西。所以抽象类中只能有抽象方法(没有...原创 2020-01-06 14:49:01 · 888 阅读 · 0 评论 -
python中可异步执行的多进程、多线程模块concurrent.futures
官方文档:https://pythonhosted.org/futures/中文文档:https://docs.python.org/zh-cn/3/library/concurrent.futures.html什么是concurrent.futuresconcurrent.futures模块为异步执行可调用函数提供了一个高级接口。异步执行可以由使用ThreadPoolExecut...原创 2020-01-06 11:17:33 · 463 阅读 · 0 评论 -
一文看懂python中的并发/并行、同步/异步、阻塞/非阻塞
并发和并行: 并发:在操作系统中,是指一个时间段中有几个程序都处于已启动运行到运行完毕之间,且这几个程序都是在同一个处理机上运行,但任一个时刻点上只有一个程序在处理机上运行。简言之,是指系统具有处理多个任务的能力。注意:这里主要指的是多个程序同时处于运行的状态,而不一定是同一时刻(再念一遍:同一时刻)在运行。比如单核CPU上同时运行3个程序,我们可以说着三个程序是并发的,虽然本质上,CPU...原创 2020-01-03 16:45:28 · 736 阅读 · 1 评论 -
python中将StreamReader类型转化为字节bytes(BytesIO)
在读写文件的时候,因为某些库的支持对象类型不一样,需要把得到的StreamReader对象转化成bytes这里用到from io import BytesIO常用的方法是:with aiofiles.open(file_path, 'wb') as f: await f.write(BytesIO(response.content))...原创 2019-12-27 16:26:35 · 2693 阅读 · 2 评论 -
Python的进程库multiprocessing中,pool组件的使用(apply,apply_async,map,map_async)
该模块的中文开发文档地址:https://docs.python.org/zh-cn/3.7/library/multiprocessing.html什么是multiprocessingmultiprocessing是一个用与threading模块相似API的支持产生进程的包。multiprocessing包同时提供本地和远程并发,使用子进程代替线程,有效避免Global In...原创 2018-06-30 00:27:21 · 3613 阅读 · 3 评论 -
python中,对异步并发库asyncio的深入理解(协程的方式)
asyncio是什么?asyncio 是用来编写并发代码的库,使用async/await语法。(通过协程的方式来实现,也就是实现协程的库)asyncio 被用作多个提供高性能 Python 异步框架的基础,包括网络和网站服务,数据库连接库,分布式任务队列等等。asyncio 往往是构建 IO 密集型和高层级结构化网络代码的最佳选择。asyncio的一些关键字的说明...原创 2019-12-27 16:18:56 · 548 阅读 · 0 评论 -
python传参数是传值还是传址?
Python中函数参数是引用传递(注意不是值传递)。对于不可变类型(数值型、字符串、元组),因变量不能修改,所以运算不会影响到变量自身;而对于可变类型(列表字典)来说,函数体运算可能会更改传入的参数变量。...原创 2019-11-02 14:48:54 · 873 阅读 · 0 评论 -
爬虫时保存图片到本地,路径为当前工作目录(或不保存直接使用),并进行图片名称自动生成的操作
保存到本地的方法:from hashlib import md5hashlib import md5def download_image(url): #下载该图片的二进制内容 print('正在下载', url) try: response = requests.get(url) if response.status...原创 2018-07-02 21:26:39 · 2014 阅读 · 0 评论 -
python爬虫这件小事,入行前,想法总是美好的
前言很多刚入行或者准备入行的朋友,想必是“道听途说”了用Python爬虫这件小事之后,撸起袖子,当晚就准备大干一场。嗯,有上进心是最优秀不过了,就像我一样。然而,但凡有价值的工作,都不可能是轻松又简单的。基于这一点,我们都有必要重新审视这项爬虫工作。作为爬虫领域的小司机,希望我的一些不成熟的认知,能让你更全面认识这一领域的基本轮廓。1 从hello world说起...原创 2019-05-01 21:40:54 · 355 阅读 · 2 评论 -
Python中,将列表中的值,转化为字典中的键名,fromkeys函数的运用
fromkeys() 函数用于创建一个新字典,以序列 seq 中元素做字典的键,value 为字典所有键对应的初始值基本语法:dict.fromkeys(seq[, value])seq -- 字典键值列表。 value -- 可选参数, 设置键序列(seq)对应的值,默认为 None。 返回值 该方法返回一个新字典。 两种用法:第一种:不指定值:x = ...原创 2019-05-11 17:59:39 · 12166 阅读 · 0 评论 -
python中线程池(threadpool)模块的基本使用
什么是threadpool?这是一个使用python实现的线程池库开发文档:官方文档:https://chrisarndt.de/projects/threadpool/安装:pip install threadpool基本使用:def hello(m, n, o): print(m, n, o)if __name__ == '__main__':...原创 2019-05-16 23:47:20 · 2276 阅读 · 0 评论 -
python中,根据经纬度和时间戳,转化成对应地区的具体时间
首先通过经纬度来确定时区名字。先安装pytz库。再安装库tzwhere ,官方文档显示这个库依赖numpy 和shapely,提前安装好这两个后再安装tzwhere。先通过经纬度得到对应的时区,再根据时间戳,转化成当地时间def tt(): from tzwhere import tzwhere from pytz import timezone imp...原创 2019-07-11 17:17:19 · 2210 阅读 · 0 评论 -
用python脚本查看电脑内存、CPU使用情况
有时为了对电脑、服务器做运行情况监控,需要获取内存、cpu的使用情况:# 先下载psutil库:pip install psutil# 下载地址 https://pypi.org/project/psutil/5.6.2/import psutildef getMemCpu(): data = psutil.virtual_memory() total = dat...原创 2019-08-05 13:00:32 · 3690 阅读 · 1 评论 -
用python对列表中的字典去重
from functools import reduce all_tomorrow_Data = [{'a':1},{'a':1}]filter_function = lambda x, y: x if y in x else x + [y] all_tomorrow_Data_set = reduce(filter_function, [[], ] + all_tomorr...原创 2019-08-05 16:45:46 · 1553 阅读 · 1 评论 -
用python获取当前脚本所在的各级目录
def get(): import os dangqian_path = os.path.dirname(__file__) shangji_path = os.path.dirname(os.path.dirname(__file__)) shang_shangji_path = os.path.dirname(os.path.dirname(os.path....原创 2019-08-05 17:25:19 · 636 阅读 · 0 评论 -
python中的异步编程:asyncio 和aiohttp 的结合使用(aiohttp-requests、aiofiles)
asyncioasyncio 是用来编写并发代码的库,使用async/await语法。asyncio 被用作多个提供高性能 Python 异步框架的基础,包括网络和网站服务,数据库连接库,分布式任务队列等等。asyncio 往往是构建 IO 密集型和高层级结构化网络代码的最佳选择。aiohttpaiohttp是一个为Python提供异步HTTP 客户端/服务端编程...原创 2019-08-12 21:19:55 · 4661 阅读 · 0 评论 -
Python异步编程:asyncio库的使用说明,以及和multiprocessing 的性能对比(2分钟立马掌握)
关于同步和异步的理解:当我执行一段程序时,不仅需要CPU处理,还需要硬盘、网络等IO操作。而事实是,CPU的速度远大于IO操作速度。假设:此时有个程序的过程是,CPU处理--IO操作--CPU处理,进过三次操作才能完成。但是在进行IO操作时,程序就卡住了(因为太慢了)。如果你写程序的逻辑是:先完成整个的------CPU处理--IO操作--CPU处理,才能进行下一个进程,那么,你的程序...原创 2019-03-17 09:09:14 · 1890 阅读 · 0 评论