random
random模块是随机数模块,用来获取随机数
import random print(random.random())#随机获取0-1之间的小数 print(random.uniform(1,2))#随机获取指定区间的小数 print(random.randint(1,10))#随机生成指定区间的整数[1-3] print(random.randrange(0,11,2))#随机获取指定区间的整数,步长为2[0,11) print(random.choice('abdcdda'))#随机获取字符串中的一个字符 print(random.sample('abdcdda',3))#随机获取字符串中指定数量的字符,并转换成list形式输出 print(random.sample(['a','b','c','d','e','f','g','h','i','j'],3))
洗牌功能
>>> import random >>> l = list(range(10)) >>> l [0, 1, 2, 3, 4, 5, 6, 7, 8, 9] >>> random.shuffle(l) >>> l [3, 8, 0, 9, 7, 4, 5, 1, 2, 6]
简单的验证码功能
方法一:
import random items = list(map(chr,list(range(97,123)))) items.extend([str(x) for x in range(10)]) a='' for i in random.sample(items,4): a += i print(a)
方法二:
import random def make(n): res='' for i in range(n): s1=chr(random.randint(65,90)) s2=str(random.randint(0,9)) res+=random.choice([s1,s2]) return res print(make(4))
os
os模块是操作系统进行调用的接口
import os os.getcwd() #获取当前工作目录,即当前python脚本工作的目录路径 os.chdir("dirname") #改变当前脚本工作目录;相当于shell下cd os.curdir #返回当前目录: ('.') os.pardir #获取当前目录的父目录字符串名:('..') os.makedirs('dirname1/dirname2') #可生成多层递归目录 os.removedirs('dirname1') #若目录为空,则删除,并递归到上一级目录,如若也为空,则删除,依此类推 os.mkdir('dirname') #生成单级目录;相当于shell中mkdir dirname os.rmdir('dirname') #删除单级空目录,若目录不为空则无法删除,报错;相当于shell中rmdir dirname os.listdir('dirname') #列出指定目录下的所有文件和子目录,包括隐藏文件,并以列表方式打印 os.remove() #删除一个文件 os.rename("oldname","newname") #重命名文件/目录 os.stat('path/filename') #获取文件/目录信息 os.sep #输出操作系统特定的路径分隔符,win下为"\\",Linux下为"/" os.linesep #输出当前平台使用的行终止符,win下为"\t\n",Linux下为"\n" os.pathsep #输出用于分割文件路径的字符串 os.name #输出字符串指示当前使用平台。win->'nt'; Linux->'posix' os.system("bash command") #运行系统命令,直接显示 os.environ #获取系统环境变量 os.path.abspath(path) #返回path规范化的绝对路径 os.path.split(path) #将path分割成目录和文件名二元组返回 os.path.dirname(path) #返回path的目录。其实就是os.path.split(path)的第一个元素 os.path.basename(path) #返回path最后的文件名。如何path以/或\结尾,那么就会返回空值。即os.path.split(path)的第二个元素 os.path.exists(path) #如果path存在,返回True;如果path不存在,返回False os.path.isabs(path) #如果path是绝对路径,返回True os.path.isfile(path) #如果path是一个存在的文件,返回True。否则返回False os.path.isdir(path) #如果path是一个存在的目录,则返回True。否则返回False os.path.join(path1[, path2[, ...]]) #将多个路径组合后返回,第一个绝对路径之前的参数将被忽略 os.path.getatime(path) #返回path所指向的文件或者目录的最后存取时间 os.path.getmtime(path) #返回path所指向的文件或者目录的最后修改时间
sys
import sys sys.argv #命令行参数List,第一个元素是程序本身路径 sys.exit(n) #退出程序,正常退出时exit(0) sys.version #获取Python解释程序的版本信息 sys.path #返回模块的搜索路径,初始化时使用PYTHONPATH环境变量的值 sys.platform #返回操作系统平台名称
shutil
高级的 文件、文件夹、压缩包 处理模块
import shutil 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) #拷贝文件和权限 shutil.copy2(src, dst) #拷贝文件和状态信息 shutil.copytree(src, dst, symlinks=False, ignore=None) #递归的去拷贝文件 shutil.rmtree(path[, ignore_errors[, onerror]]) #递归的去删除文件 shutil.move(src, dst) #递归的去移动文件
shutil.make_archive(base_name, format,...) #创建压缩包并返回文件路径,例如:zip、tar # base_name: 压缩包的文件名,也可以是压缩包的路径。只是文件名时,则保存至当前目录,否则保存至指定路径, # 如:soft =>保存至当前路径 # 如:/usr/bin/www =>保存至/usr/bin/ # format: 压缩包种类,“zip”, “tar”, “bztar”,“gztar” # root_dir: 要压缩的文件夹路径(默认当前目录) # owner: 用户,默认当前用户 # group: 组,默认当前组 # logger: 用于记录日志,通常是logging.Logger对象
shutil 对压缩包的处理是调用 ZipFile 和 TarFile 两个模块来进行的,详细:
import zipfile # 压缩 z = zipfile.ZipFile('soft.zip', 'w') z.write('soft') z.write('log.log') z.close() # 解压 z = zipfile.ZipFile('soft.zip', 'r') z.extractall() z.close()
import tarfile # 压缩 tar = tarfile.open('nginx.tar','w') tar.add('/usr/bin/nginx.zip', arcname='nginx.zip') tar.close() # 解压 tar = tarfile.open('nginx.tar','r') tar.extractall() # 可设置解压地址 tar.close()
json$pickle
用于序列化的两个模块
- json,用于字符串 和 python数据类型间进行转换
- pickle,用于python特有的类型 和 python的数据类型间进行转换
Json模块提供了四个功能:dumps、dump、loads、load
pickle模块提供了四个功能:dumps、dump、loads、load
import pickle d = dict(name='Bob', age=20, score=88)
#pickle.dumps()将数据通过特殊的形式转换为只有python语言认识的字符串 print(pickle.dumps(d)) print(pickle.loads(pickle.dumps(d)))
#pickle.dump()将数据通过特殊的形式转换为只有python语言认识的字符串,并写入文件
with open('d.txt','wb') as f: pickle.dump(d,f) with open('d.txt','rb') as f: d1=pickle.load(f) print(d1) import json print(json.dumps(d)) print(json.loads(json.dumps(d))) with open('d1.txt','w') as f: json.dump(d,f) with open('d1.txt','r') as f: d1=json.load(f)
shelve
shelve模块是一个简单的k,v将内存数据通过文件持久化的模块,可以持久化任何pickle可支持的python数据格式
存入shelve
import shelve import time d = shelve.open('shelve_test') # 打开一个文件 #初始化数据 l = ['a','b','c'] s = 'abc' dict = dict(name='Bob', age=20, score=88) date = time.time() d['list'] = l d['str'] = s d['dict'] = dict d['date'] = date d.close()
获取shelve
import shelve d = shelve.open('shelve_test') # 打开一个文件 print(d.get('list')) print(d.get('str')) print(d.get('dict')) print(d.get('date')) d.close()