zoukankan      html  css  js  c++  java
  • 模块

    模块,用一大堆代码实现了某个功能的代码集合。

    类似于函数编程和面向过程编程,函数式编程则完成一个功能,其他代码用来调用即可,提供了代码的重用性和代码间的耦合。而对于一个

    的功能来,可能需要多个函数才能完成(函数又不可以在不同的.py文件中),n个文件组成的代码集合就称为模块。

    模块分为三种;

    1. 自定义模块
    2. 第三方模块
    3. 内置模块

    3.

    此处是从lib文件中找到.account程序再到account中调用login的功能。

    此处把account模块命名为更简洁的bbb名字

    当创建的模块在D盘时写的运行文件在C盘中时:用sys。path。append(“D:”)时表示把D盘的程序追加到c盘

    ,就可以调用d盘的程序了。

    sys模块

    用于提供对python的解释器相关的操作:

    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("piease;")

    OS 模块

    用于提供系统级别的操作;

    下面列出了一些在Python os模块中比较有用的部分。它们中的大多数都简单明了。

    1. os.sep 可以取代操作系统特定的路径分割符。
    2. os.name字符串指示你正在使用的平台。比如对于Windows,它是'nt',而对于Linux/Unix用户,它是'posix'。
    3. os.getcwd()函数得到当前工作目录,即当前Python脚本工作的目录路径。
    4. os.getenv()和os.putenv()函数分别用来读取和设置环境变量。
    5. os.listdir()返回指定目录下的所有文件和目录名。
    6. os.remove()函数用来删除一个文件。
    7. os.system()函数用来运行shell命令。
    8. os.linesep字符串给出当前平台使用的行终止符。例如,Windows使用' ',Linux使用' '而Mac使用' '。
    9. os.path.split()函数返回一个路径的目录名和文件名。
    10. os.path.isfile()和os.path.isdir()函数分别检验给出的路径是一个文件还是目录。
    11. os.path.existe()函数用来检验给出的路径是否真地存在
    12. os和os.path模块
    13. os.listdir(dirname):列出dirname下的目录和文件
    14. os.getcwd():获得当前工作目录
    15. os.curdir:返回但前目录('.')
    16. os.chdir(dirname):改变工作目录到dirname
    17. os.path.isdir(name):判断name是不是一个目录,name不是目录就返回false
    18. os.path.isfile(name):判断name是不是一个文件,不存在name也返回false
    19. os.path.exists(name):判断是否存在文件或目录name
    20. os.path.getsize(name):获得文件大小,如果name是目录返回0L
    21. os.path.abspath(name):获得绝对路径
    22. os.path.normpath(path):规范path字符串形式
    23. os.path.split(name):分割文件名与目录(事实上,如果你完全使用目录,它也会将最后一个目录作为文件名而分离,同时它不会判断文件或目录是否存在)
    24. os.path.splitext():分离文件名与扩展名
    25. os.path.join(path,name):连接目录与文件名或目录
    26. >>> import os
      >>> str1 = "D;"
      >>> str2 = "home"
      >>> str3 = "index"
      >>> n = os.path.join(str1,str2,str3)
      >>> print(n)
      D;homeindex
      
    27. os.path.basename(path):返回文件名

    1. os.path.dirname(path):返回文件路径

     

    _doc_#py文件的注释

    _file_#当前文件路劲

    _package_

         #当前文件None .

         #导入的其它文件:指定文件所在包,用  。分隔

    _cached_

           #当前文件NONE

           #导入的其它文件

    _name_ #如果是主文件,_name_ == "_main_"否则,等于模块名。

    以上就是我们为大家总结的Python os模块的一些比较重要的内容。

    hashlib模块(就对文档进行对应加密)

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

    hashlib加密
    import hashlib
    >>> hash = hashlib.md5(bytes("sadfwed.3gg", encoding="utf-8"))
    >>> hash.update (bytes("123",encoding="utf-8"))
    >>> print(hash.hexdigest())
    d4d367189ec1e7fc55b0ba1f3f14aa03
    

    加密登录小练习

    
    
    import hashlib#调用hashlib模块
    def md5(arg):
        ooo = hashlib.md5(bytes("sad:fi:k", encoding="utf-8"))
        
        ooo.update(bytes(arg, encoding="utf-8"))
        #对密码进行加密再对密码的对应关系进行算法加密
        return ooo.hexdigest()
    
    def login(user,pwd):
        with open("db","r",encoding="utf-8") as f:#以读的方式用utf-8算法打开文件
            for line in f:
                u ,  p = line.strip().split("|")#在用户密码行内去掉空白在进行分割
                if u == user and p == md5(pwd):
                    return True
    def register(user,pwd):
        with open("db","a",encoding="utf-8") as f:#若用户注册则把u,p拼接到一起写进db文件里
            temp = user + "|" + md5(pwd)
            f.write(temp)
    
    i = input("1,登录:2,注册")
    if i == "2":
        user = input("用户名:")
        pwd = input("密码:")
        register(user,pwd)
    elif i =="1":#elif表示另外一个如果
        user = input("用户名:")
        pwd = input("密码:")
        r = login(user,pwd)
        if r:
            print("登录成功")
    
        else:
            print("登录失败")
    
    
    

      

    
    

      

    shutil模块

    直接参考http://www.cnblogs.com/wupeiqi/articles/4963027.html

    time&datetime模块

    import time

    import datetime

    1. print(time.clock())#返回处理器时间,python3一开始废弃
    2. print(time.process_time())#返回处理器时间
    3. print(time.time())#返回当前系统时间戳
    4. print(time.ctime())#输出Tue Jan 26 18;23;48 2017 ,当前系统时间
    5. print(time.ctime(time.time()+86400))#将时间戳转化为字符串格式
    6. print(time.ctime(time.time()-86400))#将时间戳转化为struct_time格式,但返回的本地时间
    7. print(time.ctime(time.mktime(time.localtime())))#与time.localtime()功能相反,将struct_time格式转化成时间戳格式

    #time.sleep(4)#sleep

    print(time.strftime("%y-%m-%d %H;%M;%S",time.gmtime()))#将struct_time格式转成指定的字符串格式

    print(time.strftime("2016-01-28",%Y-%M-%D"))#将字符串格式转化成struct_time格式

    日期模块

    1. import time

      str_to_date = datetime.datetime.strptime("21/11/06 16;30","%d%m/%y %H;%M"
      )#将字符串转化成日期格式 Traceback (most recent call last): File "<pyshell#19>", line 1, in <module> str_to_date = datetime.datetime.strptime("21/11/06 16;30","%d%m/%y %H;%M") File "C:UsersAdministratorAppDataLocalProgramsPythonPython36lib\_strptime.py", line 565, in _strptime_datetime tt, fraction = _strptime(data_string, format) File "C:UsersAdministratorAppDataLocalProgramsPythonPython36lib\_strptime.py", line 362, in _strptime (data_string, format)) ValueError: time data '21/11/06 16;30' does not match format '%d%m/%y %H;%M' >>>
    >>> new_date = datetime.datetime.now() + datetime.timedelta(days=10)
    >>> print(new_date)比现在加十天
    
    new_date = datetime.datetime.now() + datetime.timedelta(days=-10)
    >>> print(new_date)比现在减10天
    
    new_date = datetime.datetime.now() + datetime.timedelta(hours=-10)
    >>> print(new_date)比现在减十个小时
    
     new_date = datetime.datetime.now() + datetime.timedelta(seconds=120)
    >>> print(new_date)#比现在加120s
    

    json模块用于

    用于将字典,列表,元组形式的字符串,转换成相应的字典,列表,元组

    json.loads()将字符串转化成python基本数据类型

    json.loads(s)

    (python的基本类型)用于将字典,列表,元组形式的字符串,转换成相应的字典,列表,元组

    json.dumps()将python基本数据类型转化成字符串

    s = """{"dese":"invilad-citykey","status":1002}"""
    此处用三个引号的原因如果
    "{"dese":"invilad-citykey","status":1002}"不知道引号括的是谁,三个引号是区分括的是谁。此处元素要加双引号
    import json result = json.loads(s) print(result,type(result)) {'dese': 'invilad-citykey', 'status': 1002} <class 'dict'>
    转化成字典
    i = "[11,22,33,44]"
    import json
    result = json.loads(i)
    print(result,type(result))
    [11, 22, 33, 44] <class 'list'>
    转化成列表
    import json
    user_list = ["alex","eric","tomy"]
    s = json.dumps(user_list)
    print(s,type(s))
    ["alex", "eric", "tomy"] <class 'str'>
    转化成字符串

    模块安转的两种方法

    requests第三方模块安转应用

    1,安装

    用软件管理工具安装pip3(python内部已下载)

    pip3添加到环境变量

    pip3 install requests

    2,源码安装

    1. 下载代码:安装先下载
    2. 解压
    3. 进入目录
    4. 执行python文件中setup.py    install 进行安装

    安装成功

    调用模块 import requests

    requests模块

    发送http请求(用python模拟浏览网页)

    requests.get("http://www.baidu.com")表示用re·····登录某个网站 

    例如查询天气

    import requests
    response = requests.get("http://www.weather.com.cn/adat/sk/101010500.html")
    response.encoding = "utf-8"#b把乱码用utf-8进行转化
    result = response.text#text表示用文本输出
    print(result)
    

      

     

  • 相关阅读:
    SpringCloud组件---Ribbon
    SpringCloud组件---Eureka
    tomcat及Jetty远程调试debug
    mysql 删除重复数据
    mysql执行SQL语句时报错:[Err] 3
    线程池原理剖析
    上限下限
    线程池Executors、Callable与Future的应用
    spring获取bean(自定义工具类)
    java.util.concurrent.Exchanger应用范例
  • 原文地址:https://www.cnblogs.com/yzthc/p/7050691.html
Copyright © 2011-2022 走看看