zoukankan      html  css  js  c++  java
  • python笔记06-----常用模块(time,os,sys,random)

    模块

    1. 模块的定义和导入

    定义:

    模块:用来从逻辑上组织python代码(变量,函数,类,逻辑:实现一个功能),本质就是.py结尾的python文件(文件名:test.py对应的模块名:test)

    包:用来从逻辑上组织模块的,本质就是一个目录(必须带有一个__init__.py文件)

    导入:

    1 import module_name
    2 import module1_name,module2_name
    3 from module_alex import *
    4 from module_alex import m1,m2,m3
    5 from module_alex import logger as logger_alex   #设置模块别名

    import 本质(路径搜索和搜索路径)

    导入模块的本质就是把python文件解释一遍

    (import test  test=‘test.py all code’)

    (from test import name name=‘code’)

    import module_name    --->    module_name.py    --->    module_name.py的路径     --->   sys.path

    1 import os,sys
    2 x = os.path
    3 print(x)
    4 x1 = "/data"
    5 sys.path.append(x1)
    6 print(x1)
    7 ---------------输出结果------------------
    8 <module 'ntpath' from 'C:\Users\Administrator\PycharmProjects\NBcmdb\venv\lib\ntpath.py'>
    9 /data

    导入优化

    form module_test import test

    模块的分类

    1. 标准库(内置模块)
    2. 开源模块(第三方模块)
    3. 自定义模块(实际上就是写一个python文件)

    自定义模块

    文件名  login.py

     1 import getpass
     2 _username = 'wsy'
     3 _password = '123'
     4 
     5 username = input("输入用户名:")
     6 password = input("输入密码:")
     7 if username == _username and password == _password:
     8     print("welcome user %s login"% username)
     9 else:
    10     print("wrong username or password!")

    导入的方法

    import login

    方法一:copy到环境变量 base/lib/site-packages/

    方法二:添加新的环境变量

    2. time模块和datetime模块(时间)

    time模块

    2.1 time方法sleep方法

    1 import time
    2 start = time.time()
    3 time.sleep(1)
    4 #省略千行代码
    5 end = time.time()
    6 
    7 print("执行代码用时:%s" %(end - start))
    计算代码执行的时间

    2.2 localtime方法

    import time
    a = time.localtime()
    print(a)
    --------------输出结果---------------
    time.struct_time(tm_year=2018(年), tm_mon=1(月), tm_mday=24(日), tm_hour=11(小时), tm_min=14(分钟), tm_sec=18(秒), tm_wday=2(一周的第几天), tm_yday=24(一年的第几天), tm_isdst=0(时区))

    可以通过a.tm_year 调用

     print(a.tm_year,a.tm_mon,a.tm_mday) --输出结果: 2018 5 10 

    2.3 mktime方法

    1 打印1970到现在用了多少秒
    2 
    3 a = time.localtime() 
    4 print(time.mktime(a)) 
    5 
    6 
    7 
    8 ----------------结果----------------- 
    9 1525919616.0

     2.4 strftime方法

     1 打印当前时间
     2 print(time.strftime("%Y-%m-%d %H:%M:%S"))
     3 #%Y :年
     4 #%m :月
     5 #%d :日
     6 #%H :时
     7 #%M :分
     8 #%S :秒
     9 ------------------------输出结果------------------------
    10 2018-05-10 10:34:43

    时间的转换

     1 import time
     2 
     3 # 将结构化时间转换成时间戳
     4 print(time.mktime(time.localtime()))
     5 
     6 # 将结构化时间转换成字符串时间
     7 print(time.strftime("%Y-%m-%d",time.localtime()))
     8 # 将字符串时间转换成结构化时间
     9 print(time.strptime('2018-05-10',"%Y-%m-%d"))
    10 print(time.strptime("2018-01-24 11:31:16","%Y-%m-%d %H:%M:%S"))
    11 -------------------------输出结果--------------------------------
    12 1525920162.0
    13 2018-05-10
    14 time.struct_time(tm_year=2018, tm_mon=5, tm_mday=10, tm_hour=0, tm_min=0, tm_sec=0, tm_wday=3, tm_yday=130, tm_isdst=-1)
    15 time.struct_time(tm_year=2018, tm_mon=1, tm_mday=24, tm_hour=11, tm_min=31, tm_sec=16, tm_wday=2, tm_yday=24, tm_isdst=-1)

    datetime模块

     1 import datetime,time
     2 print(datetime.datetime.now())     #获取当前时间
     3 print(datetime.datetime.now() + datetime.timedelta(-5))  # 五天前
     4 print(datetime.datetime.now()+ datetime.timedelta(+5))   # 五天后
     5 print(datetime.datetime.now() + datetime.timedelta(hours=3)) # 3小时后
     6 print(datetime.datetime.now() + datetime.timedelta(minutes=30)) # 30分钟后
     7 
     8 a = time.time()
     9 print(a)
    10 print(datetime.date.fromtimestamp(a)) # 时间戳转成年月日
    11 ---------------------------------输出结果-------------------------------
    12 2018-05-10 10:57:38.666891
    13 2018-05-05 10:57:38.666891
    14 2018-05-15 10:57:38.666891
    15 2018-05-10 13:57:38.666891
    16 2018-05-10 11:27:38.666891
    17 1525921058.666891
    18 2018-05-10

    3. random模块(随机数)

    3.1 方法的使用

     1 import random
     2 print(random.random())                # 0-1
     3 print(random.randint(1,7))            # 1-7
     4 print(random.randrange(3))            # 0 1 2
     5 print(random.choice('123wsty'))       # 随机取一个字符,可以传入字符串列表元祖
     6 print(random.sample('heeeeaa',2))     # 随机取两个字符,列表形式
     7 print(random.uniform(1,3))            # 指定区间浮点数
     8 
     9 ---------------------------输出结果---------------------------
    10 0.15290056806101748
    11 1
    12 2
    13 w
    14 ['e', 'a']
    15 1.5085069390150398

    3.2 实现随机数字验证码

    1 import random
    2 checkcode = ''
    3 
    4 for i in range(6):
    5     current = random.randint(1,9)
    6     checkcode += str(current)
    7 print(checkcode)
    8 -----------------------输出结果-------------------------
    9 897988

    3.3 实现随机数字+字母验证码

     1 import random
     2 n = ''
     3 for i in range(6):
     4     a = random.randint(0, 9)
     5     if a % 2 == 0:
     6         tmp = chr(random.randint(65, 90))
     7     else:
     8         tmp = random.randint(0, 9)
     9     n += str(tmp)
    10 
    11 print(n)
    12 ------------------输出结果--------------------
    13 29SJV7

    4. OS模块(系统操作)

     1 print(os.getcwd())         #pwd
     2 print(os.chdir("C:\windows"))  #cd
     3 print(os.chdir(r"C:windows"))  #cd
     4 print(os.curdir)          #返回当前目录
     5 print(os.pardir)           #上级目录 cd ..
     6 print(os.makedirs(r"D:acd"))#递归创建目录 mkdir –p /a/b/c/d
     7 print(os.removedirs(r"D:acd"))#删除空目录 rmdir /a/b/c/d -p
     8 print(os.mkdir(r'D:a'))      #创建目录
     9 print(os.rmdir(r'D:a'))      #删除空目录 一层 rmdir /a/ 
    10 print(os.listdir(r'D:'))      #列出目录包含内容列表方式
    11 print(os.remove())          #删除文件
    12 print(os.rename())          #重命名
    13 print(os.stat(r'D:'))        #获取目录信息
    14 print(os.sep)             #路径分割付
    15 print(os.linesep)          #行分隔符
    16 print(os.environ)          #查看环境变量
    17 print(os.pathsep)          #查看变量分隔符
    18 print(os.name)            #系统名 unmae
    19 print(os.system('dir'))      #执行系统命令 
    20 print(os.path.defpath)        #获取路径
    21 print(os.path.split(r"c:windows"))#分开返回路径放在元祖里
    22 print(os.path.dirname(r"C:ac"))#取目录
    23 print(os.path.basename(r"C:aca.txt"))#取文件
    24 print(os.path.exists(r'c:das'))#判断路径是否存在
    25 print(os.path.isdir(r'c:das'))#判断目录是否存在
    26 print(os.path.file(r'c:das'))#判断文件是否存在
    1 import os
    2 
    3 path = 'C:\'
    4 
    5 for root, dirs, files in os.walk(path):      # 全部,目录,文件
    6     print("Root=%s,dirs=%s,files=%s" %(root,dirs,files))
    os.walk()

    5. sys模块

     1 import sys
     2 
     3 print(sys.path)      # 打印环境变量
     4 print(sys.argv)      # [显示本文件路径] 命令行参数 第一个元素是程序本身路径
     5 #
     6 print(len(sys.argv))    # 统计参数个数
     7 print(sys.argv[0])      # 当前文件路径
     8 sys.argv[2]             # 传第二个参数
     9 
    10 print(sys.version)      # 获取python版本
    11 
    12 print(sys.maxunicode)   # 最大unicode值
    13 print(sys.maxsize)      # 最大size值
    14 print(sys.platform)     # 返回操作系统平台名称
    15 sys.exit()              # 提前退出程序


  • 相关阅读:
    javascript实战演练,制作新按钮,‘新窗口打开网站’,点击打开新窗
    P1332 血色先锋队
    P4643 [国家集训队]阿狸和桃子的游戏
    T149876 公约数
    P1462 通往奥格瑞玛的道路
    P1083 借教室
    Tribles UVA
    Fence Repair POJ
    Crossing Rivers
    关于一轮
  • 原文地址:https://www.cnblogs.com/wsy1030/p/9018519.html
Copyright © 2011-2022 走看看