-
Python 中的with关键字使用详解
所属栏目:[Python] 日期:2020-12-16 热度:151
在 Python 2.5 中, with 关键字被加入。它将常用的 try ... except ... finally ... 模式很方便的被复用。看一个最经典的例子: with open('file.txt') as f: content = f.read() 在这段代码中,无论 with 中的代码块在执行的过程中发生任何情况,文件最终[详细]
-
Python优化技巧之利用ctypes提高执行速度
所属栏目:[Python] 日期:2020-12-16 热度:94
首先给大家分享一个个人在使用python的ctypes调用c库的时候遇到的一个小坑 这次出问题的地方是一个C函数,返回值是malloc生成的字符串地址。平常使用也没问题,也用了有段时间, 没发现什么异常。 这次在测试中,发现使用这个过程会出现“段错误”,造成程序[详细]
-
Python 如何访问外围作用域中的变量
所属栏目:[Python] 日期:2020-12-16 热度:168
在表达式中引用变量时,Python 会按照如下的顺序遍历各个作用域,寻找该变量: 当前函数作用域 任何外围作用域(比如包含当前函数的其他函数) global 作用域,即代码所在的模块的作用域 如果上述作用域内都找不到变量,就会报 NameError 异常。 但是对变量[详细]
-
Python中使用asyncio 封装文件读写
所属栏目:[Python] 日期:2020-12-16 热度:70
前言 和网络 IO 一样,文件读写同样是一个费事的操作。 默认情况下,Python 使用的是系统的阻塞读写。这意味着在 asyncio 中如果调用了 f = file('xx')f.read() 会阻塞事件循环。 本篇简述如何用 asyncio.Future 对象来封装文件的异步读写。 代码在 GitHub。[详细]
-
asyncio 的 coroutine对象 与 Future对象使用指南
所属栏目:[Python] 日期:2020-12-16 热度:91
coroutine 与 Future 的关系 看起来两者是一样的,因为都可以用以下的语法来异步获取结果, result = await futureresult = await coroutine 实际上,coroutine 是生成器函数,它既可以从外部接受参数,也可以产生结果。使用 coroutine 的好处是,我们可以暂[详细]
-
基于asyncio 异步协程框架实现收集B站直播弹幕
所属栏目:[Python] 日期:2020-12-16 热度:162
前言 虽然标题是全站,但目前只做了等级 top 100 直播间的全天弹幕收集。 弹幕收集系统基于之前的B 站直播弹幕姬 Python 版修改而来。具体协议分析可以看上一篇文章。 直播弹幕协议是直接基于 TCP 协议,所以如果 B 站对类似我这种行为做反制措施,比较困难[详细]
-
python开发环境PyScripter中文乱码问题解决方案
所属栏目:[Python] 日期:2020-12-16 热度:74
PyScripter看起来还是挺不错的一个python ide 环境: PyScripter 2.6.0.0 python3.4 问题: PyScripter有个小坑,打开文件后中文都成了乱码。在PyScripter中新建的文件中文可以正常显示,但是重新打开后中文乱码。 PyScripter中文乱码原因: 原因是如果文件头[详细]
-
Python读取图片属性信息的实现方法
所属栏目:[Python] 日期:2020-12-16 热度:138
本文是利用Python脚本读取图片信息,有几个说明如下: 1、没有实现错误处理 2、没有读取所有信息,大概只有 GPS 信息、图片分辨率、图片像素、设备商、拍摄设备等 3、简单修改后应该能实现暴力修改图片的 GPS 信息 4、但对于本身没有 GPS 信息的图片,实现则[详细]
-
全面了解python中的类,对象,方法,属性
所属栏目:[Python] 日期:2020-12-16 热度:82
python 中一切皆为对象,所谓对象:我自己就是一个对象,我玩的电脑就是对象,坐着的椅子就是对象,家里养的小狗也是一个对象。。。。。。 我们通过描述属性(特征)和行为来描述一个对象的。比如家里的小狗,它的颜色,大小,年龄,体重等是它的属性或特征[详细]
-
python 打印对象的所有属性值的方法
所属栏目:[Python] 日期:2020-12-16 热度:153
如下所示: def prn_obj(obj): print 'n'.join(['%s:%s' % item for item in obj.__dict__.items()]) 以上这篇python 打印对象的所有属性值的方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持编程小技巧。[详细]
-
python 打印出所有的对象/模块的属性(实例代码)
所属栏目:[Python] 日期:2020-12-16 热度:90
实例如下: import sysdef print_all(module_): modulelist = dir(module_) length = len(modulelist) for i in range(0,length,1): print getattr(module_,modulelist[i])print_all(sys) 以上这篇python 打印出所有的对象/模块的属性(实例代码)就是小编分享[详细]
-
python中常用的九种预处理方法分享
所属栏目:[Python] 日期:2020-12-16 热度:174
本文总结的是我们大家在python中常见的数据预处理方法,以下通过sklearn的preprocessing模块来介绍; 1. 标准化(Standardization or Mean Removal and Variance Scaling) 变换后各维特征有0均值,单位方差。也叫z-score规范化(零均值规范化)。计算方式是将[详细]
-
浅谈python中的变量默认是什么类型
所属栏目:[Python] 日期:2020-12-16 热度:172
1、 type(变量名),输出的结果就是变量的类型; 例如 type(6) type 'int' 2、 在Python里面变量在声明时,不需要指定变量的类型,变量的类型是动态指定的; x=5 type(x) type 'int' x="wang" type(x) type 'str' 3、 也就是说变量的类型,根据给出的赋值语[详细]
-
python遍历 truple list dictionary的几种方法总结
所属栏目:[Python] 日期:2020-12-16 热度:126
实例如下: def TestDic1(): dict2 ={'aa':222,11:222} for val in dict2: print valdef TestDic2(): dict2 ={'aa':222,11:222} for (key,val) in dict2.items(): print key,":",val def TestList1(): list=[1,2,3,4,5,'ada','fs3'] for i in range(len(list[详细]
-
遍历python字典几种方法总结(推荐)
所属栏目:[Python] 日期:2020-12-16 热度:195
如下所示: aDict = {'key1':'value1','key2':'value2','key3':'value3'}print '-----------dict-------------'for d in aDict: print "%s:%s" %(d,aDict[d])print '-----------item-------------'for (k,v) in aDict.items(): print '%s:%s' %(k,v)#效率最[详细]
-
python 循环遍历字典元素的简单方法
所属栏目:[Python] 日期:2020-12-16 热度:154
一个简单的for语句就能循环字典的所有键,就像处理序列一样: In [1]: d = {'x':1,'y':2,'z':3}In [2]: for key in d: ...: print key,'corresponds to',d[key] ...: y corresponds to 2x corresponds to 1z corresponds to 3 在python2.2之前,还只能用beys[详细]
-
完美解决python遍历删除字典里值为空的元素报错问题
所属栏目:[Python] 日期:2020-12-16 热度:147
exam = { 'math': '95','eng': '96','chn': '90','phy': '','chem': '' } 使用下列遍历的方法删除: 1. for e in exam: 2. if exam[e] == '': 3. del exam[e] 结果出现下列错误, 怎么解决: Traceback (most recent call last): File "Untitled.py",line 3,[详细]
-
解决Python 遍历字典时删除元素报异常的问题
所属栏目:[Python] 日期:2020-12-16 热度:169
错误的代码① d = {'a':1,'b':0,'c':1,'d':0}for key,val in d.items(): del(d[k]) 错误的代码② -- 对于Python3 d = {'a':1,val in d.keys(): del(d[k]) 正确的代码 d = {'a':1,'d':0}keys = list(d.keys())for key,val in keys: del(d[k]) 以上这篇解决Pyt[详细]
-
python字典键值对的添加和遍历方法
所属栏目:[Python] 日期:2020-12-16 热度:159
添加键值对 首先定义一个空字典 dic={} 直接对字典中不存在的key进行赋值来添加 dic['name']='zhangsan' dic{'name': 'zhangsan'} 如果key或value都是变量也可以用这种方法 key='age' value=30 dic[key]=value dic{'age': 30,'name': 'zhangsan'} 这里可以看[详细]
-
Python循环语句中else的用法总结
所属栏目:[Python] 日期:2020-12-16 热度:106
前言 本文讨论Python的 for…else 和 while…else 等语法,这些是Python中最不常用、最为误解的语法特性之一。 Python中的 for 、 while 等循环都有一个可选的 else 分支(类似 if 语句和 try 语句那样),在循环迭代正常完成之后执行。换句话说,如果我们不[详细]
-
python获取list下标及其值的简单方法
所属栏目:[Python] 日期:2020-12-16 热度:126
当在python中遍历一个序列时,我们通常采用如下的方法: for item in sequence: process(item) 如果要取到某个item的位置,可以这样写: for index in range(len(sequence)): process(sequence[index]) 另一个比较好的方式是使用python内建的enumerate函数:[详细]
-
浅谈python对象数据的读写权限
所属栏目:[Python] 日期:2020-12-16 热度:108
面向对象的编程语言在写大型程序的的时候,往往比面向过程的语言用起来更方便,安全。其中原因之一在于:类机制。 类,对众多的数据进行分类,封装,让一个数据对象成为一个完整的个体,贴近现实生活,高度抽象化。但是,python对类的封装并不好,因为所有的[详细]
-
使用Python进行二进制文件读写的简单方法(推荐)
所属栏目:[Python] 日期:2020-12-16 热度:88
总的感觉, python本身并没有对二进制进行支持,不过提供了一个模块来弥补,就是struct模块。 python没有二进制类型,但可以存储二进制类型的数据,就是用string字符串类型来存储二进制数据,这也没关系,因为string是以1个字节为单位的。 import struct a=1[详细]
-
Python 读写文件和file对象的方法(推荐)
所属栏目:[Python] 日期:2020-12-16 热度:161
1.open 使用open打开文件后一定要记得调用文件对象的close()方法。比如可以用try/finally语句来确保最后能关闭文件。 file_object = open('thefile.txt') try: all_the_text = file_object.read( ) finally: file_object.close( ) 注:不能把open语句放在try[详细]
-
详细介绍Python的鸭子类型
所属栏目:[Python] 日期:2020-12-16 热度:193
鸭子类型基本定义 首先Python不支持多态,也不用支持多态,python是一种多态语言,崇尚鸭子类型。 以下是维基百科中对鸭子类型得论述: 在程序设计中,鸭子类型(英语:duck typing)是动态类型的一种风格。在这种风格中,一个对象有效的语义,不是由继承自[详细]