常用模块学习

1.定义:

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

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

2.导入方法

   import mudule_name

   import module1_name,module2_name

   from mudule_alex import * 

   from mudule_alex import m1,m2,m3

   from module_alex import logger as logger_alex

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

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

    #from module_alex import name

    #name='alex'(执行)

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

   #module_alex=all code module_alex.name module_alex.logger()(赋值)
    导入包的本质就是执行该包下的_init_.py文件

4.导入优化

from module_test import test

5.模块的分类

   a:标准库

   b:开源模块

   c:自定义模块

   标准库:

    1.time和datetime

        import time

        time.time()(获取时间戳)(不填写即为当前时间)

        time.localtime()(本地时间元组形式(UTC+8时区))

        运行结果:time.struct_time(tm_year=2017, tm_mon=7, tm_mday=12, tm_hour=17, tm_min=17, tm_sec=59, tm_wday=2,  tm_yday=193, tm_isdst=0)

  例如:x=time.localtime()

     print(x.tm_year)(结果为2017)
        dst(夏令时)

       time.sleep(2)(睡两秒)

  time.gmtime()(将时间戳转换成元组形式(标准时间UTC时区))

        time.mktime()(将元组时间形式转换成时间戳)

  time.strftime("%Y-%m-%d %H:%M:%S",time.localtime())(格式化元组时间)

  time.strptime('2017-02-21 21:25:25',"%Y-%m-%d %H:%M:%S")(struct_time)

  time.asctime()(接受元组形式变量,转换成格式化时间)

  time.ctime()(接受时间戳形式变量,转换成格式化时间)

 

  import datetime

  datetime.datetime.now()(获取当前时间)

  datetime.datetime.now()+datetime.timedelta(3)  (当前时间+3天)

  datetime.datetime.now()+datetime.timedelta(-3) (当前时间-3天)

 

  datetime.datetime.now()+datetime.timedelta(hours=3)(当前时间+3小时)

  datetime.datetime.now()+datetime.timedelta(minutes=3)(当前时间+30分钟)

    2.random模块

  random.random()([0,1)之间的浮点数)

  random.randint(1,3)(随机[1,3]之间的整数)

  random.randrange(1,3)(随机[1,3)之间的整数)

  random.choice('hello')(随机字符串中值,还可传入列表,元组)

  random.simple('hello',2)(随机取两位)

  random.uniform(1,3)(随机取[1,3)之间浮点数)

  random.shuffle()(打乱顺序)

      例如:a=[1,2,3,4,4,4]

      random.shuttle(a)

      print(a)(a中顺序打乱)

   2.os模块(提供对操作系统调用的接口)

  import os

  os.getcwd()   ------获得当前工作目录

  os.getcwd("C:\\Users")  -------改变当前工作目录

  os.curdir()  -----返回当前目录

  os.padir()  ------返回上级目录

  os.makedirs(r"C:\a\b\c\d")  ------创建递归目录

  os.removedirs(r"C:\a\b\c\d")  -------若目录为空,则删除,并递归到上一级目录,若也为空,则删除,以此类推

  os.mkdir(r'D:\a')  ------生成单级目录

  os.rmdir(r'D:\a')  ------删除单级空目录,若目录不为空则无法删除,报错

   os.listdir(r'D:')  ------列出指定目录下的所有文件和子目录,包括隐藏文件,并以列表方式打印

  os.remove()  -----删除一个文件

  os.rename()  ------重命名文件/目录信息

  os.stat(r'文件名')  ------获取文件/目录信息

  os.sep  -------输出操作系统特定的路径分隔符,win下为“”\\“,linux下为“/”

  os.linesep  ------输出当前平台使用的行终止符,win下为“\r\n”,linux下为“\n”

  os.pathsep  ------输出用于分隔文件路径的字符串

  os.name  ------输出字符串指示当前使用平台,win->'nt',linux->'posix'

  os.system("bash command")  ------运行shell命令,直接显示

  os.environ ------获取系统环境变量

  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.exits(path)  ------如果path存在,返回True,不存在返回false

  os.path.isabs(path)  ------如果path是绝对路径,返回True

  os.path.isfile(path)  -----如果path是一个存在的文件,返回True,否则返回false

  os.path.isdir(path)  ------如果path是一个存在的目录,返回True,否则返回false

  os.path.join()  -------将多个路径组合后返回,第一个绝对路径之前的参数将被忽略

  os.path.getatime(path)  -----返回path所指向的文件或者目录的最后存取时间

  os.path.getmtime(path)  ------返回path所指向的文件或者目录的最后修改时间

    4.sys模块

  sys.argv   ------,命令行参数List,第一个元素是程序本身路径

  sys.exit(n)  ------退出程序,正常退出时exit(0)

  sys.version  ------获取Python解释器的版本信息

  sys.maxint  ------最大的Int值

  sys.path  ------返回模块的搜索路径,初始化时使用pythonpath环境变量的值

  sys.platform  ------返回操作系统平台名称

  val=sys.stin,readline()[:-1]

    5.shutil模块

  shutil.copyfileobj(fsrc,fdst[length])  ------将文件内容拷贝到另一个文件中,可以部分内容

  shutil.copyfile(src,dst)  -------拷贝文件

  shutli.copymode(src,dst)  -------仅拷贝权限,内容、组、用户均不变

  shutil.copystat(src,dst)  ------拷贝状态的信息,包括:mode bits,atime,mtime,flags

  shutil.copy(src,dst)  ------拷贝文件和权限

  shutil.copy2(src,dst)  ------拷贝文件和状态信息

  shutil.ignore_patterns(*patterns)

  shutil.copytree(src,dst,symlinks=False,ignore=None)  -------递归的去拷贝文件

  shutil.rmtree(path,[ignore_errors[onerror]])  -------递归的去删除文件

  shutil.move(src,dst)  -------递归的去移动文件

  shutil.make_archive(base_name,format,...)  ------创建压缩包并返回文件路径,例如:zip、tar

     6.json&pickle模块

   json:用于字符串和python数据类型间进行转换(四个功能:dump、dumps、loads、load)

  pickle:用于ptyhon特有的类型和python的数据类型间进行转换(四个功能:dump、dumps、loads、load)

 7.shelve模块

  shelve莫夸是一个简单的k,v将内存数据通过文件持久化的模块,可以持久化任何pickle可支持的python数据格式

    8.xml处理模块

  xml是实现不同语言或程序之间进行数据交换的协议,跟json差不多,但json使用起来更简单。

    9.PyYmal模块

  python也可以很容易处于ymal文档格式

    10.hashilib模块

        用于加密相关的操作,3.x中代替了md5模块和sha模块,主要提供SHA1,SHA224,SHA256,SHA384,SHA512,MD5算法

 11.re模块

  常用正则表达式符号(match,search,findall,splitall,sub)

  import re

  re.match("^chen","chenronghua123")

  re.search("R.+","chen321ronghua123")

  re.sub("[0,9]+","|","abc12de3f45gh",count=2)     (将数字全部替换为|)

posted on 2017-07-19 16:21  Imherelalala  阅读(198)  评论(0编辑  收藏  举报