2018.10.16python学习第二十天
常用模块
random 模块
随机数生成模块
random.random() 0-1 不包括1的随机浮点数
random.randint(1,10) 1-10 包括1和10的整数
random.randrange(1,10) 1-10 包括1,但是不包括10的整数
random.choice(list) list 从list中随机取出一个数
random.choices(list,k=个数) list 从list中随机取出k个数
random.sample(list,k) list 从list中随机取出k个数
random.uniform(1,3) 1-3 不包括1和3,的随机浮点数
ls=[1,2,3,4,5]
random.shuffle[ls] list 将ls的顺序随机打乱
print(ls)
random的应用之随机验证码:包括0-9,A-Z,a-z
def verification_code(length):
res=''
for i in range(length):
a=random.randint(0,9)
b=chr(random.randint(65.90))
c=chr(random.randint(97,122))
s=random.choice([a,b,c])
res+=str(s)
return res
print(verification_code(6))
sys模块
sys.path 环境变量
sys.modules 查看已经加载的模块
sys.argv 命令行参数List,第一个元素是程序本身路径
sys.exit(n) 退出程序,正常退出时exit(0)
sys.version 获取python解释器程序的版本信息
sys.maxint 最大的Int值
sys.platform 返回操作系统平台名称
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') 列出指定目录下的所有文件和子目录,包括隐藏文件,并以list
方式打印出来
os.remove() 删除一个文件
os.rename('oldname','newname') 重命名文件/目录
os.stat('path/filename') 获取文件/目录信息
os.sep 输出操作系统特定的路径分隔符,win下为'\',linux下为'/'
os.linesep 输出当前平台使用的行终止符,win下为'\t\n',linux下为'/n'
os.pathsep 输出用于分割文件路径的字符串,win下为; linux下为:
os.name 输出字符串指示当前使用平台。 win->'nt',linux->'posix'
os.system('bash command') 运行shell命令,直接显示
os.environ 获取系统环境变量
path 模块
os.path.abspath(path) 返回path规范化的绝对路径
ospath.split(path) 将path分割成目录和文件名二元组返回
os.path.dirname(path) 返回path的目录。其实就是os.path.split(path)的第一个元素
os.path.basenname(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(path[,path2[,...]]) 将多个路径组合后返回,第一个绝对路径之前的参数将被忽略
os.path.getatime(path) 返回path所指向的文件或者目录的最后存取时间
os.path.getmtime(path) 返回path所指向的我呢见或者目录的最后修改时间
os.path.getsize(path) 返回path的大小
# normcase 用于将路径规范化,会将大写转为小写,斜杠改为当前系统分隔符
print(os.path.normcase('\\a\\b\\ABC'))
# normpath 用于将路径规范化,不经将非法的分隔符替换为合法分隔符,还想大写转小
写,并且会执行'..'的回到上一层
print(os.path.normpath('/a/b.../ABC'))
获取项目根目录
shutil 模块
shutil.copyfileobj() copy文件,提供两个文件对象,长度表示缓冲区大小
shutil.copyfile(src,dst) copy文件,提供两个文件路径
shutil.copymode() copy文件权限,提供两个文件路径
shutil.copystat(src,dst) copy文件状态信息,最后访问,最后修改,权限,提供两个文件
路径
shutil.copy(src,dst) copy文件和权限,提供两个文件路径
shutil.copy(src,dst) copy文件和转台信息,提供两个文件路径
shutil.ignore_patterns('mp3','*.py')
shutil.copytree(src,dst,symlnks=False,ignore=None) 拷贝目录
symlinks 默认False将软件连接拷贝为硬链接 否则拷贝为软链接
shutil.rmtree 删除目录 可以设置忽略文件
shutil.move(src,dst) 移动目录和文件
解压 & 压缩
shutil可以打包,但是无法解包,并且打包也是调用tarfile和zipFile完成,解压需要按照格式调
用对应的模块。
打包:
import shutil
shutil.make_archive('test','tar','/users/jerry/PycharmProjects/package/packa ge1')
zip压缩
import tarfile,zipfile
z=zipfile.ZipFile('test.zip','w')
z.write('sys.py')
z.write('start'py')
z.close()
zip解压
z=zipfile.ZipFile('test.zip','r')
z.extractall("/Users/jerry/PycharmProjects/package/aaa")
z.close()
tar压缩
t=tarfile.open('test.tar','w')
t.add('start.py')
t.add('sys.py')
t.close()
tar解压
t=tarfile.open('test.tar')
t.extractall('aaa/')
t.close()