zoukankan      html  css  js  c++  java
  • 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

  • 相关阅读:
    MySql 用户 及权限操作
    MAC 重置MySQL root 密码
    在mac系统安装Apache Tomcat的详细步骤[转]
    Maven:mirror和repository 区别
    ES6 入门系列
    转场动画CALayer (Transition)
    OC 异常处理
    Foundation 框架
    Enum枚举
    Invalid App Store Icon. The App Store Icon in the asset catalog in 'xxx.app' can’t be transparent nor contain an alpha channel.
  • 原文地址:https://www.cnblogs.com/huningfei/p/9011052.html
Copyright © 2011-2022 走看看