-
详解Python中的包和包管理工具
Python中的包 包是一个分层次的文件目录结构,它定义了一个由模块及子包,和子包下的子包等组成的Python的应用环境。 考虑一个在Phone目录下的pots.py文件。这个文件有如下源代码: #!/usr/bin/python #-*-coding:UTF-8-*- defPots(): print"I'mPotsPhone" 同样地,我们有另外两个保存了不同函数…- 2.6k
- 0
-
Python脚本多种方法破解栅栏密码
Python是一种计算机程序设计语言。是一种面向对象的动态类型语言,最初被设计用于编写自动化脚本(shell),随着版本的不断更新和语言新功能的添加,越来越多被用于独立的、大型项目的开发。 Python脚本简单易用,对于要破解的栅栏密码,最简单的可以使用快速编写的Python脚本进行暴力破解: 通用脚本: #!/usr/bin/envpython #-*-coding:gbk-*- #-*-cod…- 3.2k
- 0
-
详解Python中的JSON编码模块
JSON编码支持的基本数据类型为 None , bool , int , float 和 str , 以及包含这些类型数据的lists,tuples和dictionaries。 对于dictionaries,keys需要是字符串类型(字典中任何非字符串类型的key在编码时会先转换为字符串)。 为了遵循JSON规范,你应该只编码Python的lists和dictionaries。 而且,在web应用…- 2.6k
- 0
-
Python中字符串的strip、lstrip和rstrip
Python中strip用于去除字符串的首位字符,同理,lstrip用于去除左边的字符,rstrip用于去除右边的字符。 这三个参数都可以传入一个参数,指定要去除的首尾字符。 需要注意的是,传入的是一个字符数组,编译器去除两端所有匹配的字符,直到没有匹配的字符,比如: >>>testString="saaaayyesnoyaaaass" >>>…- 1.7k
- 0
-
Python中有指针吗?
如果您曾经使用过C或C ++等低级语言,那么您可能已经听说过指针。指针允许您在部分代码中创建高效率。它们也会给初学者带来困惑,并且可能导致各种内存管理错误,即使对于专家也是如此。那么在Python中有指针的存在吗? 指针广泛用于C和C ++。本质上,它们是保存另一个变量的内存地址的变量。有关指针的更新,可以考虑在C指针上查看此概述。 为什么Python没有指针? 实际上指针为何不存在的原因现在还不…- 3.3k
- 0
-
Python中的描述符
描述符是一种在多个属性上重复利用同一个存取逻辑的方式,他能"劫持"那些本对于self.__dict__的操作。描述符通常是一种包含__get__、__set__、__delete__三种方法中至少一种的类,给人的感觉是「把一个类的操作托付与另外一个类」。静态方法、类方法、property都是构建描述符的类。 我们先看一个简单的描述符的例子: classMyDescriptor(…- 2.6k
- 0
-
使用Python实现一个堆栈结构
什么是堆栈? 堆栈是一个数据结构,其存储在一个后进/先出的方式的项目。这通常被称为LIFO。这与队列形成对比,队列以先入/先出(FIFO)方式存储项目。 使用list创建一个Python堆栈 list您可能经常在程序中使用的内置结构可用作堆栈。相反的.push(),你可以使用.append()新的元素添加到您的堆栈的顶部,同时.pop()除去了LIFO顺序的元素: >>>mySt…- 2.6k
- 0
-
详解Python元类(metaclass)
什么是元类? 理解元类(metaclass)之前,我们先了解下Python中的OOP和类(Class)。 面向对象全称 Object Oriented Programming 简称OOP,这种编程思想被大家所熟知。它是把对象作为一个程序的基本单元,把数据和功能封装在里面,能够实现很好的复用性,灵活性和扩展性。OOP中有2个基本概念:类和对象: 类是描述如何创建一个对象的代码段,用来描述具有相同的属…- 2.5k
- 0
-
深究Python中的asyncio库-线程池
在同步线程中使用的run_in_executor就如它方法的名字所示,把协程放到了一个执行器里面,可以在一个线程池,也可以在一个进程池。另外还可以使用run_coroutine_threadsafe在其他线程执行协程(这是线程安全的)。 多线程 defstart_loop(loop): asyncio.set_event_loop(loop) loop.run_forever() defshutd…- 2.2k
- 0
-
深究Python中的asyncio库-线程同步
前面的代码都是异步的,就如sleep,需要用asyncio.sleep而不是阻塞的time.sleep,如果有同步逻辑,怎么利用asyncio实现并发呢?答案是用run_in_executor。在一开始我说过开发者创建 Future 对象情况很少,主要是用run_in_executor,就是让同步函数在一个执行器( executor)里面运行。 同步代码 defa(): time.sleep(1)…- 2k
- 0
-
深究Python中的asyncio库-shield函数
shield asyncio.shield,用它可以屏蔽取消操作。一直到这里,我们还没有见识过Task的取消。 看一个例子: In:loop=asyncio.get_event_loop() In:task1=loop.create_task(a()) In:task2=loop.create_task(b()) In:task1.cancel() Out:True In:awaitasyncio…- 748
- 0
-
深究Python中的asyncio库-线程并发函数
Asyncio ——gather vs wait 在Asyncio中不止可以多次使用asyncio.gather,还有另外一个用法是asyncio.wait,他们都可以让多个协程并发执行。 那为什么提供2个方法呢?他们有什么区别,适用场景是怎么样的呢?我们先看2个协程的例子: asyncdefa(): print('Suspendinga') awaitasyncio.slee…- 661
- 0
-
Python使用Pillow添加图片水印
如果在某个网站上发布了图片,希望在图片上会出现带标识的水印着怎么办呢。 这个是个比较常见的需求,在Python中应该如何处理这一类需求呢? 需要先安装Pillow: pip install pillow Demo代码: importsys fromPILimportImage,ImageDraw,ImageFont defwatermark_with_text(file_obj,text,colo…- 654
- 0
-
Elasticsearch基本介绍及其与Python的对接实现
什么是 Elasticsearch 想查数据就免不了搜索,搜索就离不开搜索引擎,百度、谷歌都是一个非常庞大复杂的搜索引擎,他们几乎索引了互联网上开放的所有网页和数据。然而对于我们自己的业务数据来说,肯定就没必要用这么复杂的技术了,如果我们想实现自己的搜索引擎,方便存储和检索,Elasticsearch 就是不二选择,它是一个全文搜索引擎,可以快速地储存、搜索和分析海量数据。 为什么要用 Elast…- 1.4k
- 0
-
使用多线程让Python应用飞起来
很多时候,我们最终在Python中编写代码来执行远程请求或读取多个文件或对某些数据进行处理。在很多这种情况下,我看到程序员使用一个简单的程序员for loop,需要永远完成执行。例如: importrequests fromtimeimporttime url_list=[ "https://via.placeholder.com/400", "https://via…- 710
- 0
-
python的魔法方法是什么
_ _init_ _()方法 在上一面的demo中,我们已经给BMW这个对象添加了1个属性name,试想如果再次创建一个对象的话,肯定也需要进行添加属性,显然这样做很费事,那么有没有办法能够在创建对象的时候,就顺便把车这个对象的属性给设置呢? 答案就是:_ _init_ _()方法 1、使用方法 class类名: #初始化方法,用来完成一些默认的设定 def__init__(): pass 2、_…- 632
- 0
-
Python中的二叉排序树和平衡二叉树是什么
二叉排序树 二叉排序树又称为二叉查找树。它或者是一颗空树,或者是具有下列性质的二叉树: 若它的左子树不为空,则左子树上所有节点的值均小于它的根结构的值;若它的右子树不为空,则右子树上所有节点的值均大于它的根结构的值;它的左、右子树也分别为二叉排序树。 构造一颗二叉排序树的目的,往往不是为了排序,而是为了提高查找和插入删除关键字的速度。 二叉排序树的操作: 查找:对比节点的值和关键字,相等则表明找到…- 589
- 0
-
基于Python的七种经典排序算法是什么
一、排序的基本概念和分类 所谓排序,就是使一串记录,按照其中的某个或某些关键字的大小,递增或递减的排列起来的操作。排序算法,就是如何使得记录按照要求排列的方法。 排序的稳定性:经过某种排序后,如果两个记录序号同等,且两者在原无序记录中的先后秩序依然保持不变,则称所使用的排序方法是稳定的,反之是不稳定的。 内排序和外排序内排序:排序过程中,待排序的所有记录全部放在内存中外排序:排序过程中,使用到了外…- 1.3k
- 0
-
Linux端文件清理的Python脚本实现
Python是一种面向对象的解释性的计算机程序设计语言,也是一种功能强大而完善的通用型语言,已经具有十多年的发展历史,成熟且稳定。Python 具有脚本语言中最丰富和强大的类库,足以支持绝大多数日常应用。它具有简单、易学、免费、开源、可移植性、解释性、面向对象、可扩展性、可嵌入性以及丰富的库等特性,目前的应用范围也非常广泛,如系统编程、图像处理、数据库编程等方面。 Python开发者可以使用文本编…- 783
- 0
-
Python与Shell脚本的交互
考虑这样一个问题,有hello.py脚本,输出”hello, world!”;有TestInput.py脚本,等待用户输入,然后打印用户输入的数据。那么,怎么样把hello.py输出内容发送给TestInput.py,最后TestInput.py打印接收到的”hello, world!”。下面来逐步讲解一下shell的交互方式。 hello.py代码如下: #!/usr/bin/python pr…- 909
- 0
-
Python实现远程端口监控实例
python循环监控远程端口 建立网络通信连接至少要一对端口号(socket)。socket本质是编程接口(API),对TCP/IP的封装,TCP/IP也要提供可供程序员做网络开发所用的接口,这就是Socket编程接口;HTTP是轿车,提供了封装或者显示数据的具体形式;Socket是发动机,提供了网络通信的能力。 在ip.txt中每行一个ip地址和端口号,代码可循环监控这些ip地址的指定端口是否正…- 783
- 0
-
详解Python中的Thread线程模块
threading.Thread Thread 是threading模块中最重要的类之一,可以使用它来创建线程。有两种方式来创建线程:一种是通过继承Thread类,重写它的run方法;另一种是创建一个threading.Thread对象,在它的初始化函数(__init__)中将可调用对象作为参数传入。下面分别举例说明。 先来看看通过继承threading.Thread类来创建线程的例子: #cod…- 1.9k
- 0
-
用Python来统计本机CPU利用率
模块win32pdh是Python中的一个模块,封装了Windows Performance Data Helpers API。 win32pdh方法 AddCounter添加一个新计数器 AddEnglishCounter通过英文名称为查询添加计数器 RemoveCounter删除一个打开的计数器。 EnumObjectItems枚举对象的项目 EnumObjects枚举对象 OPENQUERY…- 576
- 0