铁乐学python_day29_模块与包学习4】的更多相关文章

大部份内容摘自授课老师的博客http://www.cnblogs.com/Eva-J/ 编译python文件 编译python文件是为了提高加载模块的速度,强调强调强调:提高的是加载速度而绝非运行速度. python解释器会在__pycache__目录下缓存每个模块编译后的版本,格式为:module.version.pyc. 通常会包含python的版本号. 例如,在CPython3.3版本下,my_module.py模块会被缓存成__pycache__/my_module.cpython-33…
铁乐学Python_Day34_Socket模块2和黏包现象 套接字 套接字是计算机网络数据结构,它体现了C/S结构中"通信端点"的概念. 在任何类型的通信开始之前,网络应用程序必須创建套接字. 可以将它们比作成电话插孔,没有它将无法进行通信. 套接字最初是为同一主机上的应用程序所创建,使得主机上运行的一个程序(又名一个进程)与另一个运行的程序进行通信. 这就是所谓的进程间通信(Inter Process Communication, IPC). 有两种类型的套接字:基于文件的和面向网…
大部份内容摘自授课老师的博客http://www.cnblogs.com/Eva-J/ OS模块复习一二 >>> import os >>> os.getcwd() # 获取当前所在目录 'D:\\PortableSoft\\Python35' >>> os.chdir('d:\\PortableSoft') # 改变工作目录,相当于cd命令 >>> os.getcwd() 'd:\\PortableSoft' >>>…
模块简介 python是由一系列的模块组成的,每个模块就是一个py为后缀的文件,同时模块也是一个命名空间,从而避免了变量名称冲突的问题.模块我们就可以理解为lib库,如果需要使用某个模块中的函数或对象,则要导入这个模块才可以使用,除了系统默认的模块(内置函数)不需要导入外. 导入直接使用如下语法:  import 模块名称 (不要.py后缀) 这样导入成功后,就可以在另外一个模块中使用被导入模块的功能函数或对象. 举例如下,比如在F:\Pro-files\workspace\myPython目录…
大部份内容摘自博客http://www.cnblogs.com/Eva-J/ collections模块 在内置数据类型(dict.list.set.tuple)的基础上, collections模块还提供了几个额外的数据类型:Counter.deque.defaultdict.namedtuple和OrderedDict等. 1.namedtuple: 生成可以使用名字来访问元素内容的tuple: 2.deque: 双端队列,可以快速的从另外一侧追加和推出对象: 3.Counter: 计数器,…
python序列化模块-shelve模块详解 shelve:vt. 将(书等)放置在架子上:搁置,将某事放到一旁不予考虑:将-搁在一边:装搁架于: 个人感觉有点像字典缓存?暂时搁置到一旁的意思? 研究了一段时间后,感觉它就是当成了一种临时的数据库(dbm)缓存文件来用的感觉. 为什么用shelve? (特别是在已有json和pickle的情况下) 使用json或者pickle持久化数据,能dump多次,但load的话只能取到最新的dump, 因为先前的数据已经被后面dump的数据覆盖掉了. 如果…
验证客户端链接的合法性 如果你想在分布式系统中实现一个简单的客户端链接认证功能,又不像SSL那么复杂, 那么可以利用hmac+加盐的方式来实现. 例1:简单的服务端如下 #!/usr/bin/env python # _*_ coding: utf-8 _*_ import os import socket import hmac secret_key = '老衲洗头用飘柔'.encode('utf-8') server = socket.socket() server.bind(('127.0…
铁乐学python_Day38_多进程和multiprocess模块1 [进程] 运行中的程序就是一个进程. 所有的进程都是通过它的父进程来创建的. 因此,运行起来的python程序也是一个进程,那么我们也可以在程序中再创建进程. 多个进程可以实现并发效果,程序中存在多个进程的时候,在某些时候,就会让程序的执行速度变快. 以之前所学的知识,并不能实现创建进程这个功能,所以就需要借助到python中强大的模块--multiprocess. 仔细说来,multiprocess不是一个模块而是pyth…
铁乐学python_day25_序列化模块 部份内容摘自博客http://www.cnblogs.com/Eva-J/ 回顾内置方法: __len__ len(obj)的结果依赖于obj.__len__()的结果,计算对象的长度 __hash__ hash(obj)的结果依赖于obj.__hash__()的结果,计算对象的hash值 __eq__ obj1 == obj2 的结果依赖于obj.__eq__()的结果,用来判断值相等 __str__ str(obj) print(obj) '%s'…
铁乐学python_Day39_多进程和multiprocess模块2 锁 -- multiprocess.Lock (进程同步) 之前我们千方百计实现了程序的异步,让多个任务可以同时在几个进程中并发处理, 但是它们之间的运行没有顺序,一旦开启也不受我们控制. 尽管并发编程能让我们更加充分的利用IO资源,但是也会带来新的问题. 当多个进程使用同一份数据资源的时候,就会引发数据安全或顺序混乱问题. 遇到数据.安全比速度重要的场景,我们就需要将进程变回受同步控制. 例: #!/usr/bin/env…