模块
import 模块
一. random模块
ret = random.random() # 取0-1之间的小数
ret = random.uniform(1, 2) # 取1-2之间的小数
ret = random.randint(1,2) # 随机输出1到2的整数
ret = random.randrange(1, 3) # 随机输出1到2的整数, 取不到3
ret = random.randrange(1, 200, 2) # 随机输出1到199之间, 间隔为2的整数
l = [1,2,3,[4,5],6]
ret = random.choice(l) # 在l中随机抽取1个元素
ret = random.sample(l, 2) # 在l中随机抽取2个元素, 互补相同
random.shuffle(l) 打乱l的元素的顺序, 没有返回值
二. time模块
time模块主要是用来处理时间的, 包括时间戳时间, 格式化时间, 结构化时间
格式化时间是用来给人看的, 时间戳时间是用来给电脑计算的, 结构化时间是用来在两者间转换的
时间戳时间从1970年1月1日0点0分0秒的英国伦敦时间开始计算
time.sleep(2) # 程序走到这停顿两秒
格式化时间 ==> strptime ==> 结构化时间 ==> mktime ==> 时间戳时间
时间戳时间 ==> localtime, gmtime ==> 结构化时间 ==> strftime ==> 格式化时间
print(time.strftime('%y-%m-%d %H:%M:%S')) 输出现在的时间 2018-08-20 16:21:03
print(time.strftime('%c') 输出现在的时间 Mon Aug 20 16:21:03 2018
ret = time.strptime('2013.10.12', '%Y/%m/%d') 变为结构化时间
ret= time.mktime(ret) 变为时间戳时间
ret = time.localtime(2000000000) 变为当地的结构化时间
ret = time.gmtime(2000000000) 变为英国伦敦的结构化时间
ret = time.strftime('%Y-%m-%d %H:%M:%S', ret) 变为格式化时间
结构化时间
struct_time = time.localtime()
str = '{}-{}-{}'.format(struct_time.tm_year, struct_time.tm_mon, struct_time.tm_mday)
三. sys模块
sys是和Python的解释器打交道的
print(sys.argv)
在终端中执行时, 输入Python 文件的绝对路径后, 加上空格, 在输入字符串, print会输出一个列表, 列表的第一项是这个py文件的了绝对路径, 第二项是刚才输入的空格后的字符串 ['模块.py', '1232', '123', '4', '1q']
这用于在input时, 代替input, 在程序中使用 input = sys.argv[1] , 因为input会降低程序运行效率
print(sys.path)
输出导入模块的地址, 模块如果要被导入, 需要在这个path的地址下, 地址有当前文件夹和c盘的Python文件夹
print(sys.modules)
输出我们已经导入到内存中的模块的名字
print(sys.modules['re'].findall('\d', '123kkj123') 这样输入也可以, 需要导入sys和re模块
四. os模块
和操作系统交互的模块
os.makedirs(dir1/dir2) 创建文件夹, 在py文件当前的目录下创建, 能创建多个
os.mkdir('dir3') 创建文件夹, 在py文件当前的目录下创建, 只能创建一个
os.mkdir('dir3/dir4') 在dir3存在的情况下, 在dir3目录下创建dir4, 如果dir3没有, 会报错
os.rmdir('dir3/dir4') 在dir3下有dir4的情况下, 移除dir4, 其他情况报错
os.removesdirs('dir3/dir4') 在dir3下有dir4的情况下, 移除dir3和dir4, 如果dir3中有文件时, 不会删除dir3, 如果dir4中有文件时, 不会删除dir3或dir4, 但会报错
print(os.stat(r'D:\Python\Temp.py')) 在给定的路径上执行一个系统 stat 的调用
os.system和 os.popen是执行字符串数据类型的 命令行代码
os.system('dir') # 没有返回值
ret = os.popen('dir') # 是做查看类的操作
# 当os模块满足不了需求时, 用os.system和os.popen
s = ret.read()
print(s)
os.listdir / os.path.join
file_list = os,listdir('D:\Python')
for path in file_list:
print(os.path.join('D:\Python', path))
print(os.getcwd()) # 打印当前的工作目录 D:\Python
os.chdir('D:\Python') # 切换到这个路径
ret = os.popen('dir') # 是和做查看类的操作
s = ret.read
print(s) # 打印这个目录下的文件和文件夹
path = os.path.abspath('D:/python/模块.py')
print(path) # 把路径中不符合规范的/改成\, 把相对路径改成绝对路径
path= os.path.split('D:/python/模块.py')
print(path) # 切割路径, 输出('D:/python', '模块.py')
ret1 = os.path.dirname('D:/python/模块.py') # 输出('D:/python')
ret2 = os.path.basename('D:/python/模块.py') # 输出('模块.py')
res = os.path.exists(r'D:/python/模块.py')
print(res) # 存在输出True, 不存在输出False
res = os.path.isabs('模块.py')
print(res) # 判断是否是绝对路径, 输出True或False
print(os.listdir('D:\python\模块.py')) # 输出文件夹组成的列表
print(os.path.isdir(r'D:\python')) # 判断是否是文件夹
print(os.path.isfile(r'D:\python\模块.py')) # 判断是否是文件
path = os.path.join('D:\python','模块.py') # 组成一个路径
print(path)
size= os.path.getsize(r'D:\python\模块.py') # 查看文件大小
print(size)