zoukankan      html  css  js  c++  java
  • 五、模块导入方法及常用模块

    模块的导入方法:
    1)import 模块名
    2)from 模块名 import sayhi
    from os import system(从OS模块中调用system方法,就可以使用系统命令了)
    例:system('df -h')
    3)import 模块名 as 新名字
     
    常用模块及方法:
    OS(系统模块)
     
    sys(包含Python的系统环境变量等等)
    sys.path(查看Python的环境变量路径)
     
    tab(用于命令补全,非系统内置)
     
    实现某功能,且是实现的所有代码的集合
    模块有两种存在方式:.py文件,“文件夹”
    模块:
    1.自己写(自定义)
    2.别人写(第三方)
    3.python写(内置)
    ===========================================================
    模块的导入:
    import sys
    from sys import argv
    from sys import argv as test
    ===========================================================
    内置模块:
    一.os:用于提供系统级别的操作
     1 os.getcwd() 获取当前工作目录,即当前python脚本工作的目录路径
     2 os.chdir("dirname") 改变当前脚本工作目录;相当于shell下cd
     3 os.curdir 返回当前目录: ('.')
     4 os.pardir 获取当前目录的父目录字符串名:('..')
     5 os.makedirs('dirname1/dirname2') 可生成多层递归目录
     6 os.removedirs('dirname1') 若目录为空,则删除,并递归到上一级目录,如若也为空,则删除,依此类推
     7 os.mkdir('dirname') 生成单级目录;相当于shell中mkdir dirname
     8 os.rmdir('dirname') 删除单级空目录,若目录不为空则无法删除,报错;相当于shell中rmdir dirname
     9 os.listdir('dirname') 列出指定目录下的所有文件和子目录,包括隐藏文件,并以列表方式打印
    10 os.remove() 删除一个文件
    11 os.rename("oldname","newname") 重命名文件/目录
    12 os.stat('path/filename') 获取文件/目录信息
    13 os.sep 输出操作系统特定的路径分隔符,win下为"\",Linux下为"/"
    14 os.linesep 输出当前平台使用的行终止符,win下为"
    ",Linux下为"
    "
    15 os.pathsep 输出用于分割文件路径的字符串
    16 os.name 输出字符串指示当前使用平台。win->'nt'; Linux->'posix'
    17 os.system("bash command") 运行shell命令,直接显示
    18 os.environ 获取系统环境变量
    19 os.path.abspath(path) 返回path规范化的绝对路径
    20 os.path.split(path) 将path分割成目录和文件名二元组返回
    21 os.path.dirname(path) 返回path的目录。其实就是os.path.split(path)的第一个元素
    22 os.path.basename(path) 返回path最后的文件名。如何path以/或结尾,那么就会返回空值。即os.path.split(path)的第二个元素
    23 os.path.exists(path) 如果path存在,返回True;如果path不存在,返回False
    24 os.path.isabs(path) 如果path是绝对路径,返回True
    25 os.path.isfile(path) 如果path是一个存在的文件,返回True。否则返回False
    26 os.path.isdir(path) 如果path是一个存在的目录,则返回True。否则返回False
    27 os.path.join(path1[, path2[, ...]]) 将多个路径组合后返回,第一个绝对路径之前的参数将被忽略
    28 os.path.getatime(path) 返回path所指向的文件或者目录的最后存取时间
    29 os.path.getmtime(path) 返回path所指向的文件或者目录的最后修改时间
    View Code
    =======================================================================================================================
    二.sys:用于提供对解释器相关的操作
    1 sys.argv 命令行参数List,第一个元素是程序本身路径
    2 sys.exit(n) 退出程序,正常退出时exit(0)
    3 sys.version 获取Python解释程序的版本信息
    4 sys.maxint 最大的Int值
    5 sys.path 返回模块的搜索路径,初始化时使用PYTHONPATH环境变量的值
    6 sys.platform 返回操作系统平台名称
    7 sys.stdout.write('please:')
    8 val = sys.stdin.readline()[:-1]
    View Code
    =======================================================================================================================
    三.ConfigParser:用于对特定格式(如my.cnf)的配置文件进行操作,当前模块的名称在 python 3.x 版本中变更为 configparser。
     1 如我们经常用的MySQL的配置文件my.cnf:
     2 # 注释1
     3 ; 注释2
     4  
     5 [mysqld]
     6 user = root
     7 port = 3306
     8  
     9 [client]
    10 k1 = v1
    11  
    12 ----------------------------------------------------------------
    13 import ConfigParser
    14 config = ConfigParser.ConfigParser()
    15 config.read('my.cnf')
    16  
    17 # ########## 读 ##########
    18 #获取[mysqld],[client]======》得到了['mysqld','client']
    19 #secs = config.sections()
    20 #print secs
    21  
    22 #获取[mysqld]下面的key======》得到了['user','port']
    23 #options = config.options('mysqld')
    24 #print options
    25  
    26 #获取[mysqld]下面的数据======》得到了[('user','root'),('port','3306')]
    27 #item_list = config.items('mysqld')
    28 #print item_list
    29  
    30 #获取[mysqld]下面的某一个值======》得到了root
    31 #val = config.get('mysqld','user')
    32 #获取[mysqld]下面的某一个值======》得到了root
    33 #val = config.getint('mysqld','user') 相当于拿到值之后将其转换为int形态,比如你得到的值不是root而是123,默认它是字符串型,这时候你就可以用这条语句
    34  
    35 # ########## 改写 ##########
    36 #删除mysqld这个组的数据
    37 #sec = config.remove_section('mysqld') =====》这个仅仅是在内存里删除了
    38 #config.write(open('mysql.cnf', "w")) =====》这一句才是真正在文件里删除了
    39  
    40 添加mysqld这个组
    41 #sec = config.has_section('mysqld')
    42 #sec = config.add_section('mysqld')
    43 #config.write(open('my.cnf', "w"))
    44  
    45 #更改内容
    46 #config.set('mysqld','user',‘rooney’)
    47 #config.write(open('my.cnf', "w"))
    48  
    49 #删除某项的值
    50 #config.remove_option('mysqld','port')
    51 #config.write(open('my.cnf', "w"))
    View Code
    =======================================================================================================
    四.hashlib:用于加密相关的操作,代替了md5模块和sha模块,主要提供 SHA1, SHA224, SHA256, SHA384, SHA512 ,MD5 算法
     1 import hashlib
     2  
     3 # ######## md5 ########
     4 hash = hashlib.md5()
     5 hash.update('admin'.encode("utf-8"))
     6 print (hash.hexdigest())
     7 21232f297a57a5a743894a0e4a801fc3
     8 # ######## sha1 ########
     9 hash = hashlib.sha1()
    10 hash.update('admin'.encode("utf-8"))
    11 print (hash.hexdigest())
    12  d033e22ae348aeb5660fc2140aec35850c4da997
    13 # ######## sha256 ########
    14 hash = hashlib.sha256()
    15 hash.update('admin'.encode("utf-8"))
    16 print (hash.hexdigest())
    17 # ######## sha384 ########
    18  
    19 hash = hashlib.sha384()
    20 hash.update('admin'.encode("utf-8"))
    21 print (hash.hexdigest())
    22  9ca694a90285c034432c9550421b7b9dbd5c0f4b6673f05f6dbce58052ba20e4248041956ee8c9a2ec9f10290cdc0782
    23 # ######## sha512 ########
    24 hash = hashlib.sha512()
    25 hash.update('admin'.encode("utf-8"))
    26 print (hash.hexdigest())
    27 c7ad44cbad762a5da0a452f9e854fdc1e0e7a52a38015f23f3eab1d80b931dd472634dfac71cd34ebc35d16ab7fb8a90c81f975113d6c7538dc69dd8de9077ec
    28 以上加密算法虽然依然非常厉害,但时候存在缺陷,即:通过撞库可以反解。所以,有必要对加密算法中添加自定义key再来做加密。
    29 import hashlib
    30 # ######## md5 ########
    31 hash = hashlib.md5('rooney') =====>这个rooney就是自定义的key
    32 hash.update('admin'.encode("utf-8"))
    33 print (hash.hexdigest())
    34 此外:python 还有一个 hmac 模块,它内部对我们创建 key 和 内容 再进行处理然后再加密
    35  
    36 import hmac
    37 h = hmac.new('wowowowow')
    38 h.update('hellowo')
    39 print (h.hexdigest())
    View Code
     
     
  • 相关阅读:
    alertify、js、css 使用简介
    html 跳转页面,同时跳转到一个指定的位置
    java 解析 json 遍历未知key
    JSON 字符串 与 java 对象的转换
    iOS安全系列之 HTTPS 进阶
    iOS安全系列之 HTTPS
    iOS-socket
    他人整理开源组件列表
    iOS Layout机制相关方法
    在写一个iOS应用之前必须做的7件事(附相关资源)
  • 原文地址:https://www.cnblogs.com/steven9898/p/11329327.html
Copyright © 2011-2022 走看看