python
学习python
杨杨小朋友
这个作者很懒,什么都没留下…
展开
-
解决ERROR: No matching distribution found for yaml
解决ERROR: No matching distribution found for yaml原创 2022-08-03 11:46:47 · 2897 阅读 · 1 评论 -
python2安装DBUtils失败
python2安装DBUtils失败原创 2022-08-03 11:23:54 · 910 阅读 · 0 评论 -
python安装mysqldb报错
python按住给mysqldb原创 2022-08-03 11:06:44 · 1273 阅读 · 1 评论 -
python的os模块操作linux权限
Linux创建一个新的目录mkdir -p /xxx/xxx/xxxLinux下修改权限chmod -R 777 /xxx/xxx/xxxLinux创建组groupadd 组名Linux创建用户useradd -r -g message -s /bin/false 用户名Linux修改文件归属者chown -R 用户名:组名 /xxx/xxx/xxxpython的os模块中也有对应的操作方法更新环境yum -y update安装python3yum -y ins..原创 2021-03-17 17:24:57 · 524 阅读 · 0 评论 -
python os模块
使用os与系统交互,创建文件夹import os;def main(): # 切换到d盘目录 os.chdir("d:/"); # os.system可以执行系统命令,创建一个testFile文件; os.system("md testFile") # os.getcwd() 获得磁盘名字 print("{}-中创建了一个 testFile 子目录".format(os.getcwd()));if __name__ == '__main__':.原创 2021-03-17 17:00:01 · 295 阅读 · 0 评论 -
python文件缓冲
观察缓冲import timedef main(): # w代表输出 文件不存在时,自动创建,创建成功之后写入数据 file = open("E:\\test.txt", mode="w",encoding="UTF-8",buffering=1); file.write("奥特曼打小怪兽"); # 刷新缓冲 # file.write("\n"); # 休眠10秒,观察数据在缓冲中还未写入到文件 time.sleep(10);if __na..原创 2021-03-17 11:01:00 · 658 阅读 · 0 评论 -
python文件操作方法(文件读写,随机读写,文件编码)
def main(): try: # w代表输出 文件不存在时,自动创建,创建成功之后写入数据 file = open("E:\\test.txt", "w"); file.write("奥特曼打小怪兽"); except BaseException: pass; finally: file.close();if __name__ == '__main__': main();使用with.原创 2021-03-17 10:46:35 · 1262 阅读 · 0 评论 -
python多协程开发(微线程丶纤程)
python对于并发的处理有多进程,多线程和多协程在python提供的并发编程中,多协程的开发是性能最高的一种实现形式,多线程有GIL锁的问题;多协程的资源控制是交给开发者来进行控制的,多进程和多线程都是有操作系统进行控制的,会有各种轮转,执行了一段时间就会让出资源,交给其他进程或者是线程进行处理,这样的处理会有性能开支;1.yeild实现多协程对于当前的程序开发没有系统级的处理控制,如果忘记yield如何使用的话请点击此处参考下廖雪峰的# 生产者def producer(cons):原创 2021-03-16 16:21:14 · 206 阅读 · 0 评论 -
python生产者与消费者condition同步处理和队列进行处理
利用condition实现等待唤醒操作和生产消费的同步处理;import threading,time,schedclass Message: def __init__(self,condition): self._title = None; self._content = None; self._flag = True; self._condition = condition; def set_info(self,ti原创 2021-03-16 14:28:54 · 179 阅读 · 0 评论 -
python多线程-threading以及线程同步,定时调度(定时任务)
相比较_thread来说,threading进行了更加高度的封装和功能的扩展,对于使用人员来说更加简单方便。import threading,time# 蒂尼多def thread_handle(delay): for num in range(10): # 追加一个延时操作 time.sleep(delay); print("{},num = {}".format(threading.currentThread().name,num));d原创 2021-03-16 11:30:22 · 1148 阅读 · 1 评论 -
python多线程 _thread
python之前的多线程是使用_thread来实现的import _thread,time# 蒂尼多def thread_handle(thread_name,delay): for num in range(10): # 追加一个延时操作 time.sleep(delay); print("{},num = {}".format(thread_name,num));def main(): for item in range(10):原创 2021-03-16 10:26:57 · 98 阅读 · 0 评论 -
python进程同步-Barrier
Barrier表示的是一种屏障,当若干个进程没有达到屏障数量的时候都处于阻塞状态,一旦达到了屏障数量,那么将自动解除阻塞状态并且启动运行;上面的描述可能比较难以理解,我们可以简单理解为,进程在同步执行的时候,如果此时一共3个进程,有两个执行完一定的逻辑需要进行下一步的时候,第三个还没执行完对应的逻辑,那么前两个将处于阻塞的状态不进行执行,等第三个执行完之后,三个一起进行下一步的逻辑处理;代码示例import multiprocessing, time# 需要后续执行的方法def barier_h原创 2021-03-16 09:46:47 · 590 阅读 · 0 评论 -
python进程同步-Event
Event实际上描述的是一种同步的处理时间,可以简单的理解为,不同的进程之间可以利用一些特殊的处理来等待其他进程处理完毕;个人感觉这个就是相当于提供了一种阻塞的方式,比如你开了两个进程同时操作,但是你其中一个进程依赖于另一个进程处理完成之后再进行操作,那么这个时候使用Event;代码示例如下,但是需要频繁得阻塞和解除阻塞,看起来很是麻烦;import multiprocessing, timedef restaurant_handle(event): print("1.【餐厅】为食客安排原创 2021-03-16 09:29:10 · 295 阅读 · 0 评论 -
python同步管理机制-semaphore
import multiprocessing,time''' 测试多进程 使用Semaphore'''def worker(sema): # 获取信号量,如果没有可用信号量则进入到组赛队列; if sema.acquire(): # 输出提示信息 print("{}进程开始进行业务办理".format(multiprocessing.current_process().name)); # 模拟业务逻辑处理时间原创 2021-03-15 17:26:47 · 83 阅读 · 0 评论 -
python进程同步 使用lock锁
多进程数据不同步import multiprocessing,time''' 测试多进程抢票 并发执行,或导致数据不同步,那么我们需要做的是进程同步,进行加锁'''def worker(dict): while True: number = dict.get("ticket"); if number > 0: # 模拟网络延迟 time.sleep(1); numbe原创 2021-03-15 17:16:19 · 622 阅读 · 0 评论 -
python不同的进程之间进行通讯
使用管道进行通讯Pipeimport multiprocessingdef send_date(conn,data): conn.send("我发送消息了:{}".format(data));def receive_date(conn): print("接受数据:{}".format(conn.recv()));def main(): conn_send,conn_recv = multiprocessing.Pipe(); process_send = mul原创 2021-03-15 16:29:33 · 462 阅读 · 0 评论 -
python中的多进程程序处理以及与系统简单交互(查看CPU使用率,查看系统磁盘使用等);
使用multiprocessing包面向过程的代码如下# 导入多进程开发模块import multiprocessing,timedef main(): print("主进程程序,进程id:{},进程名字:{};".format(multiprocessing.current_process().pid, multiprocessing.current_process().name));if __na原创 2021-03-12 17:15:32 · 207 阅读 · 0 评论 -
python代码规范检测工具 pylint Flake8
1.pylint组件下载编程工具pycharm示例file–setting–project:–python interpreter–点击左下角加号–搜索–下载或者pip install pylint2.设置file–setting–tools–external tools–加号设置如下3.使用右键文件目录,点击如下即可Flake8组件 下载方法和上面一样设置$PyInterpreterDirectory$/python-m flake8 --statistics $Pro原创 2021-03-11 17:36:48 · 360 阅读 · 0 评论 -
python性能测试 cProfile,pstats
cProfileimport cProfiledef testcProfile(num): sum = 0; for item in range(num): sum += item; return sum;if __name__ == '__main__': cProfile.run("testcProfile(123456)"); """ 打印结果 ncalls 函数调用次数 tottime原创 2021-03-11 16:58:42 · 220 阅读 · 0 评论 -
python功能测试 doctest,unittest
doctest简易使用介绍multiply(1,2)12会报错import doctestdef multiply(v1,v2): ''' >>> multiply(3,4) 12 >>> multiply(1,2) 12 ''' return v1 * v2;def main(): # 生成详细的输出 doctest.testmod(verbose=True);if __原创 2021-03-11 15:02:49 · 171 阅读 · 0 评论 -
python中的正则表达式和匹配函数
匹配函数,还有很多,自行百度import redef main(): # match函数只可以从头开始匹配 print("从头匹配 :{}".format(re.match("123","1234567"))); print("从头匹配 :{}".format(re.match("123","1234567"))); print("不匹配 :{}".format(re.match("9","1234567"))); print("大小写匹配 :{}".format原创 2021-03-10 17:39:56 · 254 阅读 · 0 评论 -
python中的time,calendar,datetime简易用法
time# 测试时间戳和时间元组import timedef main(): # 时间戳 testTime = time.time(); # 时间元组 time_tuple = time.localtime(testTime); print("当前时间为 : {}".format(time.asctime())); print("我是时间戳 : {}".format(testTime)); print("我是时间元组 : {}".format(原创 2021-03-10 15:32:31 · 86 阅读 · 0 评论 -
python yield关键字,contextlib模块
'''整个生成器的函数并不是一次执行完毕的,而是可以持续和调用处进行沟通return 只是返回你一次调用;'''def generator(): print("yield代码执行前"); # 与return类似,都是可以返回数据的 res = yield "奥利给--001"; print("yield代码执行后: res = {}".format(res)); yield "奥利给--002:{}".format(res);def main():原创 2021-03-10 14:46:45 · 111 阅读 · 0 评论 -
python中的set,双端队列,堆和枚举
python中的set实例化,和Java一样是剔重的集合;class TestSet: @staticmethod def test(): testSetList = set([1, 1, 1, 1]); print(testSetList);def main(): TestSet.test();if __name__ == '__main__': main();python中的双端队列''' deque的方法原创 2021-03-09 17:51:20 · 131 阅读 · 0 评论 -
python异常的捕获和关键字with
python异常捕获语法try: # 写你的代码 ... pass;except Exception as err: # 报错了之后捕获,进行异常处理 print(err);else: # 程序没报错,进行其他处理 pass;finally: # 上面的全进行玩了之后进行其他处理 pass;raise关键字,手动抛出异常try: # 手动抛出异常 raise Exception("奥利给");except Exc原创 2021-03-09 17:05:07 · 675 阅读 · 1 评论 -
python装饰器
python中的装饰器的作用还是非常大的,可以去除冗余代码,简化开发;# 传统写法,每一个方法都调用了logging方法来做日志的收集,冗余,改起来还麻烦;class TestDecorator: def print_title(self): logging(); print("hello 我是title"); def print_url(self): logging(); print("hello 我是url");原创 2021-03-08 17:26:13 · 132 阅读 · 0 评论 -
python序列操作(自定义迭代,对象反转,字典操作)
自定义迭代class TestIter: def __init__(self,max): self.max = max; self.foot = 0; def __iter__(self): return self; def __next__(self): if self.foot > self.max: return -1; else: va原创 2021-03-08 15:06:38 · 77 阅读 · 0 评论 -
python调用拦截,属性字段
使用__getattribute__方法,针对类中的属性方法都会拦截这个感觉和Java中的拦截器的意思一样,但是这个更简单一些;class GetAttriBute: def __getattribute__(self, item): print("拦截前"+item); # 加下行代码即可放行 return object.__getattribute__(self, item); def testGetAttriBute(self):原创 2021-03-08 14:24:10 · 303 阅读 · 0 评论 -
python骚操作-模块的动态导入
python提供了__import()__函数可以进行模块的动态导入,这个函数和Java中的反射有点相似的意思;工程路径util代码def testImportA(): return "测试导入模块";class Message: def testFunction(self,name): return "我是类中的方法{}".format(name);testImport代码def main(): # 定义你要导入的模块; util =原创 2021-03-05 17:32:46 · 82 阅读 · 0 评论 -
python骚操作--无需对象.方法即可调用对应方法
在类中写__call__方法即可;class testCallFunction: # 需要使用call方法 def __call__(self, *args, **kwargs): return "名字是:{},年龄是:{}".format(kwargs.get("name"),kwargs.get("age"));def main(): testCall = testCallFunction(); print(testCall());if _原创 2021-03-05 17:15:39 · 250 阅读 · 0 评论 -
python中对象的特性,格式化函数和类对象比较函数(大部分都让自行百度了,这里就不做详细的描述了)
前面的文章都是python编程语言中基础的基础,所有的编程语言最基础的大部分都大同小异,差距在基础之后就明显体现出来了,有很多让大家自行百度的东西,因为从事编程这门行业,除了我们看教程,看书学习之外,有很多东西需要你翻官方文档,上网查阅各种资料,要锻炼一下自学能力和在网上查找资料的能力;1.python也是一门面向对象的语言,这点和Java一样;2.python中也存在继承,多态这种特性,如何使用请自行百度;3.python中有比较对象的方法,比较多,简单描述几个,用法和其他的自行百度;class原创 2021-03-05 17:00:39 · 75 阅读 · 0 评论 -
python中的类与方法
1.python中的类并没有硬性规定,比如像Java一样一个每一个类都是.class结尾的,而是.py结尾的;class testClass: def setModels(self,name,age): self.age = age; self.name = name;2.python中的类中的方法,都必须有一个默认值,否则会报错;class testClass: def setModels(self,name,age): self.a原创 2021-03-05 09:50:31 · 443 阅读 · 1 评论 -
python 打包成whl文件
1.安装wheelpip install wheel;2.使用指令打包;根据setup.py中的设置将项目打包在sdist目录下python setup.py sdist bdist_wheel注意打包的时候,你的包路劲里面需要有init.py这个配置文件;否则打包的时候会什么东西都没有,可以自己新建这个配置文件,里面内容是空的也无所谓;...原创 2021-03-04 10:30:15 · 1110 阅读 · 1 评论 -
error: invalid command ‘xxx_wheel‘
python打包成wheel格式报错:error: invalid command ‘bdist_wheel’没安装wheel,使用 pip install wheel安装即可;原创 2021-03-04 10:15:58 · 428 阅读 · 4 评论 -
virtualenv: error: unrecognized arguments: –no-site-packages
最近学习python看到需要安装虚拟环境 virtualenv;我本地安装的版本是20.4.2;教程版本是16.7.9;使用指令 virtualenv --no-site-packages 报错;报错内容:virtualenv: error: unrecognized arguments: –no-site-packages;原因:virtualenv高版本和低版本不支持–no-site-packages;1.将virtualenv版本搞到支持 –no-site-packages 的版本;2原创 2021-03-04 10:09:23 · 1847 阅读 · 2 评论 -
python内置的函数(sys,copy,偏函数),内置的模块
1.sys函数,自行百度;2.copy函数,和Java中的copy一样,有浅拷贝深拷贝两种,自行百度;3.偏函数 这个函数挺有意思的,python的骚操作,用不用都行;from functools import partial# 定义一个测试函数def testPartialFunction(a, b, c=1): return a + b + c;# 使用偏函数,此时定义了testPartialFunction方法,已经给a赋值为100,b赋值为200testPartial原创 2021-03-03 16:54:29 · 226 阅读 · 0 评论 -
python函数的定义,python lambda函数的定义
之前简单写了一篇文章,描述了python中的循环和函数等,可能不是很详细,这里再扩展一下python函数的其他定义方式;1.python中的函数定义是def关键字开头的;# 函数定义 def关键字 后面是函数的名字def funcName(): print("python语言的第一个函数");2.python和Java一样有无参有参的函数# 无参函数,没返回值,但是python默认没有return的函数返回None;def funcName(): print("python语言原创 2021-03-01 18:19:19 · 959 阅读 · 4 评论 -
python中的列表,元组,字典(集合,map) 以及对集合,map的遍历
python 3.9.2pycharm 2020.3.3前两天简单看了python的基础之后,发现python的列表是个挺有意思和挺个性独立的设计;1.python的列表可以混合存储各种数据,包括最基本的基础数据和复杂的数据;L2 = [1, "奥特曼", 2]2.python的列表访问有正反两种方式;# 输出得到的结果都是 2print(L2[2]);print(L2[-1]);3.python的列表长度获取方式和遍历列表的方式也很特性独立:# 这个类似于Java中的 for(in原创 2021-02-26 15:36:53 · 3978 阅读 · 0 评论 -
python集合,for循环,break,continue,函数定义以及return
python的集合看着是真的乱,啥都可以放;break,continue和Java用法一样;for循环用的看着也有些乱;# python 中的集合使用[]中括号,里面基本数据类型和复杂数据类型都可以混合存储L1 = [1, 2, 3, ]L2 = [1, "奥特曼", 2]print(L1)# range(start,end,step) start 开始数字,end 结束数字,step 每次增加多少,默认为1;a = list(range(1, 6))print(a)for i in原创 2021-02-25 17:02:47 · 544 阅读 · 1 评论 -
python三元运算符
pythonprint(43 if 3 < 5 else 1)java3<5?"":""原创 2021-02-25 16:09:17 · 102 阅读 · 0 评论