import random
# print(random.random())#0-1之间的小数
# print(random.uniform(10,23))#n,m之间的小数
#生成随机整数
# print(random.randint(1,2))#必须是2各参数,规定一个范围[1,2]
# print(random.randrange(100))#一个参数
# print(random.randrange(1,2))#两个参数[1,2)
# print(random.randrange(90,100,2))#三个参数,最后一个是部长
#从一个序列中随机选择:一个choice,多个sample
# print(random.choice('abc'))
# print(random.sample((1,'23',4,5),2))
#打乱一个序列的顺序
# xiao = [1,2,3,4,5,7,8]
# random.shuffle(xiao)#改变了原列表
# print(xiao)
#验证码
#生成一个6位数随机验证码
# print(random.randint(100000,999999))
# print(random.randrange(100000,1000000))
# l = []
# for i in range(6):
# rand_num = random.randint(0,9)
# l.append(str(rand_num))
# print(''.join(l))
# 生成一个6位数字随机验证码,不能重复,少了好多种可能
# print(random.sample(range(0,10),6))
#生成一个6位数字+字母的验证码
#0-9 randrange(0,10)
#a-z 65 - 90, 97 - 122
#几个数字几个字母
#方法一
# alpha= random.randint(65,90)
# alpha2 = chr(alpha)
# print(alpha2)
# num = random.randint(0,9)
# print(num)
# print(random.choice([alpha2,str(num)]))
# l = []
# for i in range(6):
# alpha = chr(random.randint(65,90))
# alpha_lower = chr(random.randint(97,122))
# num = str(random.randint(0,9))
# ret = random.choice([alpha,num,alpha_lower])
# l.append(ret)
# print(''.join(l))
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下为"
",Linux下为"
"
os.pathsep 输出用于分割文件路径的字符串 win下为;,Linux下为:
os.name 输出字符串指示当前使用平台。win->'nt'; Linux->'posix'
os.system("bash command") 运行shell命令,直接显示
os.popen("bash command) 运行shell命令,获取执行结果
os.environ 获取系统环境变量
os.path
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所指向的文件或者目录的最后修改时间
os.path.getsize(path) 返回path的大小
'''
os模块就是照着写 :30
import os
#和系统路径有关
# print(os.getcwd())#查找当前路径
# os.chdir(r'C:Users')
# print(os.getcwd())
# print(os.curdir) .
# print(os.pardir) ..
#和系统文件夹和文件相关的
# os.mkdir('dir1')#创建一个目录
# os.makedirs('dir3\dir4')#在目录里面创建一个目录
# os.rmdir('dir3\dir4')#删除目录里创建的目录
# os.removedirs('dir3\dir4')#同时删除创建的2个目录
# os.remove('文件路径')
# os.rename('文件路径')
# print(os.listdir(r'S8day21'))查找文件和隐藏文件
#和操作系统特征相关的
# print(os.stat(r'S8day21'))
# print(os.sep)
# print(os.environ)
#和操作系统的命令相关 -- dir cd
# os.system('dir')#没有返回值,且直接执行代码,把结果直接输出
# ret = os.popen(('dir1'))#如果有结果就将结果返回回来
# print(ret.read())#ret.read()获取结果
os模块就是照着写 :30
import os
#和系统路径有关
# print(os.getcwd())#查找当前路径
# os.chdir(r'C:Users')
# print(os.getcwd())
# print(os.curdir) .
# print(os.pardir) ..
#和系统文件夹和文件相关的
# os.mkdir('dir1')#创建一个目录
# os.makedirs('dir3\dir4')#在目录里面创建一个目录
# os.rmdir('dir3\dir4')#删除目录里创建的目录
# os.removedirs('dir3\dir4')#同时删除创建的2个目录
# os.remove('文件路径')
# os.rename('文件路径')
# print(os.listdir(r'S8day21'))查找文件和隐藏文件
#和操作系统特征相关的
# print(os.stat(r'S8day21'))
# print(os.sep)
# print(os.environ)
#和操作系统的命令相关 -- dir cd
# os.system('dir')#没有返回值,且直接执行代码,把结果直接输出
# ret = os.popen(('dir1'))#如果有结果就将结果返回回来
# print(ret.read())#ret.read()获取结果
# os.path
# ret = os.path.split(r'C:UsersAdministratorAppDataLocalProgramsPythonPython36python.exe C:/S8/day21/__init__.py')
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下为"
",Linux下为"
"
os.pathsep 输出用于分割文件路径的字符串 win下为;,Linux下为:
os.name 输出字符串指示当前使用平台。win->'nt'; Linux->'posix'
os.system("bash command") 运行shell命令,直接显示
os.popen("bash command) 运行shell命令,获取执行结果
os.environ 获取系统环境变量
os.path
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所指向的文件或者目录的最后修改时间
os.path.getsize(path) 返回path的大小
# os.path
# ret = os.path.split(r'C:UsersAdministratorAppDataLocalProgramsPythonPython36python.exe C:/S8/day21/__init__.py')
# ret = os.path.basename(r'C:UsersAdministratorAppDataLocalProgramsPythonPython36python.exe C:/S8/day21/__init__.py')
# print(ret)
# ret = os.path.isfile(r'C:/S8/day21/__init__.py')
# print(ret)
# ret = os.path.isfile(r'C:UsersAdministratorAppDataLocalProgramsPythonPython36')
# print(ret)
# ret = os.path.isdir(r'C:UsersAdministratorAppDataLocalProgramsPythonPython36')
# print(ret)
# ret = os.path.isdir(r'C:UsersAdministratorAppData')
# print(ret)
# ret = os.path.join(r'C:UsersAdministratorAppDataLocalProgramsPythonPython36')
# print(ret)
# ret = os.path.getsize(r'C:UsersAdministratorAppDataLocalProgramsPythonPython36')
# print(ret)
# 什么叫做序列化
# 字符串 列表 字典 元组
# 字典和列表 不能写到文件里
#{[]} ==str== str({[]})
#str({[]}) == eval('')
# s_dic = str({'k':'v'})
# print(repr(s_dic))
# print(repr(eval(s_dic)),type(eval(s_dic)))
# 序列化方法
# 格式转换
# 把python中的数据转换成str —— 序列化
# 可以str转换成python的数据 —— 反序列化
#json
#所有的语言都通用,它能序列化的数据是有限的:字典列表元组
#序列化中的内容只能包含:字典 列表 数字 字符串,如果是元组——自动转成列表的样子
# import json
# ret = json.dumps({'k':(1,2,3)})
# print(repr(ret),type(ret))
# ret2 = json.loads(ret)
# print(repr(ret2),type(ret2))
# f = open('json_file','a')
# json.dump({'k':'v'},f)
# f.close()
# with open('json_file') as f:
# ret = json.load(f)
# print(ret,type(ret))
# for line in f:
# json.loads(line)
# str = json.dumps(dict)
# f.write(str+'
')
#pickle是py特有的
#dumps
#loads
#dump
#load
#pickle ---- 序列化任何数据类型,python专有的不能和其他语言兼容,结果是bytes
# import pickle #用pickle序列化的数据,反序列化也必须用pickle
# ret = pickle.dumps({1,2,3,4})
# print(ret)
# import json
# dic = {'k1':'v1','k2':'v2','k3':'v3'}
# str_dic = json.dumps(dic) #序列化:将一个字典转换成一个字符串
# print(type(str_dic),str_dic) #<class 'str'> {"k3": "v3", "k1": "v1", "k2": "v2"}
#注意,json转换完的字符串类型的字典中的字符串是由""表示的
# dic2 = json.loads(str_dic) #反序列化:将一个字符串格式的字典转换成一个字典
# # 注意,要用json的loads功能处理的字符串类型的字典中的字符串必须由""表示
# print(type(dic2),dic2) #<class 'dict'> {'k1': 'v1', 'k2': 'v2', 'k3': 'v3'}
# list_dic = [1,['a','b','c'],3,{'k1':'v1','k2':'v2'}]
# str_dic = json.dumps(list_dic) #也可以处理嵌套的数据类型
# print(type(str_dic),str_dic) #<class 'str'> [1, ["a", "b", "c"], 3, {"k1": "v1", "k2": "v2"}]
# list_dic2 = json.loads(str_dic)
# print(type(list_dic2),list_dic2)