• 5-1 模块


    一 collections模块

    1 orderedDict 有序字典

    1 # d = collections.OrderedDict()
    2 #
    3 # d['苹果'] = 10
    4 # d['手机']=5000
    5 # print(d)
    6 # for i in d:
    7 #     print(i,d[i])

    2 defaultdict 默认字典

    例子:小于66的放到k2,大于66的放到k1,形成一个新字典

    l= [11, 22, 33, 44, 55, 66, 77, 88, 99, 90]
    1 # new_dict = defaultdict(list)
    2 # for value in l:
    3 #     if value > 66:
    4 #         new_dict['k1'].append(value)
    5 #     else:
    6 #         new_dict['k2'].append(value)
    7 # print(new_dict)

    3 namedtuple 生成可以使用名字来访问元素内容的tuple

    1 # from collections import namedtuple
    2 # Point = namedtuple('point',['x','y'])
    3 # p=Point(1,2)
    4 # print(p.x)
    5 # print(p.y)

    4  deque双端队列

     1 # from collections import deque
     2 # q=deque()
     3 # print(q)
     4 # q.append(1)
     5 # q.append(2)
     6 # print(q)
     7 # q.pop()
     8 # print(q)
     9 # q.appendleft('a')左添加
    10 # q.appendleft('b')
    11 # print(q)
    12 # q.popleft()左删除
    13 # print(q)

    二time模块

    1三种时间格式

    1 import time
    2 print(time.time()) ##时间戳时间
    3 print(time.strftime('%Y-%m-%d %H:%M:%S'))##字符串时间
    4 print(time.localtime()) ##结构化时间

    2 时间转换

     1 时间戳---> 结构化时间-->字符串时间
     2 # print(time.localtime(1600000000)) ##时间戳转换成结构化时间
     3 # struct_time=time.gmtime(1600000000) ##结构化
     4 # print(time.strftime('%Y-%m-%d %H:%M:%S',struct_time))##结构化转换成字符串
     5 
     6 结果是time.struct_time(tm_year=2020, tm_mon=9, tm_mday=13, tm_hour=20, tm_min=26, tm_sec=40, tm_wday=6, tm_yday=257, tm_isdst=0)
     7 2020-09-13 12:26:40
     8 
     9 字符串时间-->结构化时间-->时间戳时间
    10 
    11 
    12 # s = '2015-12-3 8:30:20'
    13 # ret = time.strptime(s,'%Y-%m-%d %H:%M:%S')  ##字符串转换成结构化
    14 # print(ret)
    15 # print(time.mktime(ret)) ##结构化转换成时间戳
    16 
    17 结果是:
    18 time.struct_time(tm_year=2015, tm_mon=12, tm_mday=3, tm_hour=8, tm_min=30, tm_sec=20, tm_wday=3, tm_yday=337, tm_isdst=-1)
    19 1449102620.0

    3 计算时间差

    1 ##计算现在的时间到1991相差了多少
    2 ago_time='1991-1-3'
    3 now_time=time.localtime()
    4 current_time=time.strptime(ago_time,'%Y-%m-%d')
    8 print('过去了%d年%d月%d天'
    9 %(now_time.tm_year-current_time.tm_year,now_time.tm_mon-current_time.tm_mon,now_time.tm_mday-current_time.tm_mday))

    三random模块 (可以用于随机生成可用于验证码)

    1

    1 import random
    2 # print(random.random()) ##是介于0和1之间的小数
    3 # print(random.uniform(1,4)) ##介于1和4之间的的小数
    4 # print(random.randint(1,5)) ##介于1和5之间的随机整数

    2例子随机生成一个验证码

     1 #(65,90)A-Z  (97,122)a-z
     2 import random
     3 yanzheng=''
     4 for i in range(6):##6位验证码
     5     num1=random.randint(65,90)##大写字母
     6     alpha1=chr(num1)
     7     num2=random.randint(97,122) ##小写字母
     8     alpha2=chr(num2)
     9     num3=str(random.randint(0,9))##数字
    10     #print(alpha1,alpha2,num3)
    11     s=random.choice([alpha1,alpha2,num3])
    12     yanzheng+=s
    13 print(yanzheng)

    四 sys模块 (sys模块是与python解释器交互的一个接口

     1 import sys
     2 #sys.exit() ##解释器退出,程序结束
     3 # print(sys.path) #一个模块是否能够被导入 全看在不在sys.path列表所包含的路径下
     4 # print(sys.modules) ## 放了所有在解释器运行的过程中导入的模块名
     5 # print(sys.argv)   ##返回['D:/python21/day5/模块.py']
     6 
     7 
     8 下面是一个传参数的例子
     9 
    10 if sys.argv[1]=='hu' and sys.argv[2]=='123':
    11     print('登录成功')
    12 else:
    13     sys.exit()
    14 ##注意,不能在pycharm里面直接执行,应该是D:python21day5模块.py这种执行方式

    五 os模块

     1 import os
     2 # print(os.getcwdb())#获取当前目录
     3 # os.chdir('C:python21') #更改目录
     4 # print(os.getcwdb())
     5 
     6 
     7 print(os.name) #输出字符串指示当前使用平台。win->'nt'; Linux->'posix'
     8 #print(os.makedirs(r'c:/a/b')) ##创建多级目录
     9 #os.removedirs(r'c:/a/b')# 若目录为空,则删除,并递归到上一级目录,如若也为空,则删除,依此类推
    10 #print(os.listdir(r'c:python21')) ##列出当前目录所有的文件和目录,以列表形式打印
    11 # print(os.environ) ##获取系统环境变量
    12 
    13 #os.system("dir")  ##运行shell命令,直接显示,不用打印
    14 # ret = os.popen("dir").read() ##运行shell命令,获取执行结果,需要打印
    15 # print(ret)

    2 os.path

     1 # print(os.path.abspath(r'模块.py')) ##获取绝对路径
     2 # #结果C:python21day5模块.py
     3 # print(os.path.dirname('C:python21day5模块.py')) ##获取上一级目录
     4 # #结果C:python21day5
     5 # print(os.path.split('C:python21day5模块.py'))#将path分割成目录和文件名二元组返回
     6 # #结果('C:\python21\day5', '模块.py')
     7 # print(os.path.basename('C:python21day5模块.py')) ##只获取到文件名
     8 #结果:模块.py
     9 # print(os.path.exists('C:python21day5模块.py'))##判断路径是否存在,存在返回true
    10 # print(os.path.isabs(r'模块.py')) ##判断是否是绝对路径,是返回true
    11 # print(os.path.isfile('C:python21day5'))  ##判断是否是文件,是返回true
    12 # print(os.path.isdir('C:python21day5')) ##判断是否是目录,是返回true
    13 # print(os.path.join('c:','python21'))##将多个路径组合后返回
    14 # print(os.path.getatime('C:python21day5')) #获取文件目录最后访问时间
    15 # print(os.path.getmtime('C:python21day5')) #获取文件目录最后修改时间
    16 # print(os.path.getsize(r'C:python21day5模块.py'))#获取文件大小
    17 # print(os.path.getsize(r'C:python21day4'))#获取目录大小

    3 例子计算目录下文件的大小

    第一种情况,计算的目录不在当前目录

    1 # dirs = "C:python21day4"
    2 # sum=0
    3 # C:python21day4ceshi.py
    4 # for path in ret:
    5 #     if os.path.isfile(os.path.join(dirs, path)):
    6 #         sum+=os.path.getsize(os.path.join(dirs,path))
    7 # print(sum)

    第二种情况,计算当前目录文件大小

    1 # ret = os.listdir(r'C:python21day5')
    2 # for path in ret:
    3 #     if os.path.isfile(path):
    4 #         sum+=os.path.getsize(path)
    5 # print(sum)

    第三中情况,计算文件夹下的文件夹及其文件大小

     1 sum=0
     2 def func(dirs):  # 'C:python21day5' ##默认是字符串
     3     global sum
     4     for file in os.listdir(dirs):##列出dirs目录下面所有的文件及其目录
     5         if os.path.isdir(os.path.join(dirs,file)):        
     6             
     7             func(os.path.join(dirs,file))##如果是文件夹则继续执行函数func
     8         else:
     9             print("%s:%s" % (file,os.path.getsize(os.path.join(dirs,file))))
    10             sum+=os.path.getsize(os.path.join(dirs,file))
    11     return sum
    12 print(func(r'C:python21day5'))

    # dirs 是 C:python21day5a
    # file是 目录下面的文件 C:python21day5a.txt

  • 相关阅读:
    进程与线程
    闭包
    form表单提交
    让图片在div盒子中水平垂直居中
    第一个shell脚本——修改配置文件
    Linux系统find命令的常用方法
    Linux使echo命令输出结果带颜色
    Linux面试题
    无人值守批量安装
    Linux系统PXE高效批量网络装机的配置
  • 原文地址:https://www.cnblogs.com/huningfei/p/9011052.html
Copyright © 2020-2023  润新知