Python3学习之路~5.8 shelve模块】的更多相关文章

shelve模块是一个简单的k,v将内存数据通过文件持久化的模块,可以持久化任何pickle可支持的python数据格式 import shelve import datetime name = ["alex", "rain", "test"] info = {'age':21,'job':'it'} date_now = datetime.datetime.now() d = shelve.open('shelve_test') # 打开一个文…
我们一般使用linux的时候,都是在Windows上安装一个ssh客户端连接上去.那么从一台linux如何连接到另一条linux呢?使用ssh命令即可,因为每台linux机器自己都有一个ssh客户端.现在我们使用Python的paramiko模块可以实现ssh客户端,通过Python脚本远程登录一台机器并执行相关操作.为什么要使用Python来实现ssh客户端呢?主要作用是用来作批量管理.如果让你使用ssh命令登录1台linux机器还好,但是如果让1000台机器同时执行一个命令怎么办呢?当然你可…
用于提供对解释器相关的操作 sys.argv 命令行参数List,第一个元素是程序本身路径 sys.exit(n) 退出程序,正常退出时exit(0) sys.version 获取Python解释程序的版本信息 sys.maxint 最大的Int值(此变量python2.7有,python3.6没有) sys.path 返回模块的搜索路径,初始化时使用PYTHONPATH环境变量的值 sys.platform 返回操作系统平台名称 sys.stdout.write('please:') val…
random模块常用方法: import random # 随机数 print(random.random()) # 生成一个0到1的随机浮点数,0 <= n < 1.0 print(random.uniform(1,10)) # 生成一个1到10的随机浮点数,1.0 <= n < 10.0 print(random.randint(1,2)) # 生成一个指定范围内的随机整数,a <= n <= b print(random.randrange(1,10)) # 从指…
re模块用于对python的正则表达式的操作. 常用正则表达式符号 字符数字: . 匹配除换行符以外的任意字符,即[^\n] \s 匹配任意空白符(如\t.\n.\r ) \S 匹配任意非空白符 \w 匹配[A-Za-z0-9下划线汉字] \W 匹配非[A-Za-z0-9下划线汉字] \b 匹配单词的开始或结束 ^或\A 匹配字符串的开始 $或\Z 匹配字符串的结束 \d或[0-9] 匹配所有数字 \D 匹配非数字 次数: * 重复零次或多次 + 重复一次或多次 ? 重复零次或一次 {n} 重复…
用于生成和修改常见配置文档,当前模块的名称在 python 2.x 版本中为 ConfigParser, python 3.x 版本中变更为 configparser. 来看一个好多软件的常见文档格式如下 [DEFAULT] ServerAliveInterval = 45 Compression = yes CompressionLevel = 9 ForwardX11 = yes [bitbucket.org] User = hg [topsecret.server.com] Port =…
Python也可以很容易的处理ymal文档格式,只不过需要安装一个模块,参考文档:http://pyyaml.org/wiki/PyYAMLDocumentation…
用于提供系统级别的操作 os.getcwd() 获取当前工作目录,即当前python脚本工作的目录路径 os.chdir("dirname") 改变当前脚本工作目录:相当于shell下cd os.curdir 返回当前目录: ('.') os.pardir 获取当前目录的父目录字符串名:('..') os.makedirs('dirname1/dirname2') 可生成多层递归目录 os.removedirs('dirname1') 若目录为空,则删除,并递归到上一级目录,如若也为空…
目录 Python3学习之路~2.1 列表.元组操作 Python3学习之路~2.2 简单的购物车程序 Python3学习之路~2.3 字符串操作 Python3学习之路~2.4 字典操作 Python3学习之路~2.5 简单的三级菜单程序 Python3学习之路~2.6 集合操作 Python3学习之路~2.7 文件操作 Python3学习之路~2.8 文件操作实现简单的shell sed替换功能 Python3学习之路~2.9 字符编码与转码 Python3学习之路~2.10 修改hapro…
数据交换格式 json 模块 json (JavaScript Object Notation)是一种轻量级的数据交换语言,以文字为基础,且易于让人阅读.尽管 json 是JavaScript的一个子集,但 json 是独立于语言的文本格式,并且采用了类似C语言家族的一些习惯 json 建构于两种结构基础之上: 1.'名称/值'对的集合.在不同的语言中,它被理解为对象(object).记录(record).结构(struct).字典(dictionary).哈希表(hash table).有键列…
shelve模块是一个简单的k,v将内存数据通过文件持久化的模块,可以持久化任何pickle可支持的python数据格式. 1,序列化 import shelve f=shelve.open('shelve_test') names=['www.96net.com.cn',"www.dc3688.com","www.baidu.com"] info=['name','woodson','age':22] f["names"]=names f['i…
hashlib模块用于加密相关的操作,3.x里代替了md5模块和sha模块,主要提供 SHA1, SHA224, SHA256, SHA384, SHA512 ,MD5 算法 import md5 hash = md5.new() hash.update('Hello') print hash.hexdigest() md5-废弃 import sha hash = sha.new() hash.update('Hello') print hash.hexdigest() sha-废弃 impo…
用于序列化的两个模块 json,用于字符串 和 python数据类型间进行转换 pickle,用于python特有的类型 和 python的数据类型间进行转换 Json模块提供了四个功能:dumps.dump.loads.load pickle模块提供了四个功能:dumps.dump.loads.load json.dumps 将数据通过特殊的形式转换为所有程序语言都认识的字符串 json.dump 将数据通过特殊的形式转换为所有程序语言都认识的字符串,并写入文件 pickle.dumps 将数…
动态导入模块就是只知道str类型的模块名字符串,通过这个字符串导入模块. 准备: 首先创建一个模块目录lib,然后在目录内创建一个模块 aa.py: # aa.pyclass C: def __init__(self): self.name = 'alex' 然后在lib目录平级新建测试代码 test.py,实现动态导入模块. 方法1: __import__ 代码: # test.py lib = __import__("lib.aa") print(lib.aa.C().name)…
xml是实现不同语言或程序之间进行数据交换的协议,跟json差不多,但json使用起来更简单,不过,以前在json还没诞生的时候,大家只能选择用xml,至今很多传统公司如金融行业的很多系统的接口还主要是xml. xml的格式如下,就是通过<>节点来区别数据结构的: <?xml version="1.0"?> <data> <country name="Liechtenstein"> <rank updated=&…
高级的 文件.文件夹.压缩包 处理模块 shutil.copyfileobj(fsrc, fdst[, length])#将文件内容拷贝到另一个文件中,可以部分内容 shutil.copyfile(src, dst) #拷贝文件 shutil.copymode(src, dst) #仅拷贝权限.内容.组.用户均不变 shutil.copystat(src, dst) #拷贝状态的信息,包括:mode bits, atime, mtime, flags shutil.copy(src, dst)…
time模块 时间相关的操作,时间有三种表示方式: 时间戳               1970年1月1日之后的秒,即:time.time() 格式化的字符串    2014-11-11 11:11,    即:time.strftime('%Y-%m-%d') 结构化时间          元组包含了:年.日.星期(取值0-6, Monday is 0)等... time.struct_time    即:time.localtime() time模块下常用方法: asctime([tuple…
1 定义 模块:用来从逻辑上组织Python代码(变量.函数.类.逻辑:实现一个功能),本质上就是.py结尾的Python文件(文件名:test.py对应的模块名:test). 2 导入方法 import module_name import module1_name,module2_name from module_name import *  #不建议使用,如果当前文件写了一个方法与导入的方法名相同,会将导入的方法覆盖 from module_name import  m1,m2,m3 fr…
前面几节我们写的socket都只能实现服务端与一个客户端通信,并不能实现服务端与多客户端同时通信.接下来我们就来学习一下如何实现服务端同时与多个客户端通信,即并发. Socket Server socketserver就是对socket的一个再封装,主要功能就是实现并发. socketserver模块简化了编写网络服务器的任务. socketserver一共有以下4种类型: class socketserver.TCPServer(server_address,RequestHandlerCla…
作业: 开发一个支持多用户在线的FTP程序 要求: 用户加密认证 允许同时多用户登录 每个用户有自己的家目录 ,且只能访问自己的家目录 对用户进行磁盘配额,每个用户的可用空间不同 允许用户在ftp server上随意切换目录 允许用户查看当前目录下文件 允许上传和下载文件,保证文件一致性 文件传输过程中显示进度条 附加功能:支持文件的断点续传 README: 1.client连接server端需要验证账号密码,密码使用MD5加密传输,三次验证不成功即退出.2.用户信息保存在服务器本地文件中,密码…
1.异常基础 在编程过程中为了增加友好性,在程序出现bug时一般不会将错误信息显示给用户,而是现实一个提示的页面,通俗来说就是不让用户看见大黄页!!! try: pass except Exception as e: pass 注意:Python3.x中Exception和e之间用 as ,Python2.7中Exception和e之间用 as 和 逗号 均可. 2.异常种类 python中的异常种类非常多,每个异常专门用于处理某一项异常!!! AttributeError 试图访问一个对象没有…
为什么要设计好目录结构? 可读性高: 不熟悉这个项目的代码的人,一眼就能看懂目录结构,知道程序启动脚本是哪个,测试目录在哪儿,配置文件在哪儿等等.从而非常快速的了解这个项目. 可维护性高: 定义好组织规则后,维护者就能很明确地知道,新增的哪个文件和代码应该放在什么目录之下.这个好处是,随着时间的推移,代码/配置的规模增加,项目结构不会混乱,仍然能够组织良好. 目录组织方式 关于如何组织一个较好的Python工程目录结构,已经有一些得到了共识的目录结构.在Stackoverflow的这个问题上,能…
实例1: 利用socket模拟客户端和服务器端各自收发一次数据: #Author:Zheng Na # 客户端 import socket # 声明socket类型,同时生成socket连接对象 client = socket.socket() # 默认参数family=AF_INET(表示地址簇为IPV4),type=SOCK_STREAM(表示socket类型为TCP) client.connect(('localhost',6969)) client.send(b"hello world&…
Python内置函数表: 内置参数详解:https://docs.python.org/3/library/functions.html?highlight=built#ascii 用法: #Author:Zheng Na # abs() 取绝对值 # all() 如果可迭代对象iterabla中的所有元素都为真(或者iterable为空),返回True print(all([])) # True print(all([1,-5])) # True print(all([0])) # False…
一 协程 协程,又称微线程,纤程.英文名Coroutine.一句话说明什么是线程:协程是一种用户态的轻量级线程. 协程拥有自己的寄存器上下文和栈.协程调度切换时,将寄存器上下文和栈保存到其他地方,在切回来的时候,恢复先前保存的寄存器上下文和栈.因此: 协程能保留上一次调用时的状态(即所有局部状态的一个特定组合),每次过程重入时,就相当于进入上一次调用的状态,换种说法:进入上一次离开时所处逻辑流的位置. 协程的好处: 无需线程上下文切换的开销 无需原子操作锁定及同步的开销 "原子操作(atomic…
一 队列queue 当必须在多个线程之间安全地交换信息时,队列在线程编程中特别有用. 队列的作用:1.解耦,使程序直接实现松耦合 2.提高处理效率 列表与队列都是有顺序的,但是他们之间有一个很大的区别:从列表中取出一个数据,数据还在列表中,从队列中取出一个数据,队列中就减少一个数据.class queue.Queue(maxsize=0) #先入先出 class queue.LifoQueue(maxsize=0) #last in fisrt out class queue.PriorityQ…
python基础知识点 1.python基础知识点汇总 2.python常用数据类型 3.python之列表 4.python之字符串 5.python常用数据运算符 6.python之字典 7.python之set集合 python常用函数 1.python函数初解 2.python函数之动态参数 3.python函数之三元运算及lambda表达式 4.python之内置函数 python常用模块 1.序列化模块:json 2.序列化模块:pickle 3.时间处理模块:time 4.时间处理…
利用socket实现文件传送,大约分为如下几步: 1.读取文件名2.检测文件是否存在3.打开文件(别忘了最后关闭文件)4.检测文件大小5.发送文件大小给客户端6.等客户端确认7.开始边读边发数据8.md5验证 实例1:实现步骤1-7 运行代码 #Author:Zheng Na #ftp服务端 import socket import os server = socket.socket() server.bind(('localhost',6969)) server.listen() while…
1. __doc__ 表示类的描述信息 class Dog(object): """ 这个类是描述狗这个对象的 """ def func(self): pass print(Dog.__doc__) # 输出: 这个类是描述狗这个对象的 2. __module__ 和  __class__  __module__ 表示当前操作的对象在哪个模块 __class__     表示当前操作的对象的类是什么 class C: def __init__(s…
可以直接作用于for循环的数据类型有以下几种: 一类是集合数据类型,如list.tuple.dict.set.str等: 一类是generator,包括生成器和带yield的generator function. 这些可以直接作用于for循环的对象统称为可迭代对象:Iterable. 可以使用isinstance()判断一个对象是否是Iterable对象: from collections import Iterable def fib(max): n,a,b=0,0,1 while n<max…