zoukankan      html  css  js  c++  java
  • python常用模块学习

    补充:字符串的格式化

    print("%s-%s-%s" % (tm_obj.tm_year,tm_obj.tm_mon,tm_obj.tm_mday))

    输出就是2017-10-29

    time模块

    sys模块

    C:\python2.7\lib\site-packages 存放所有的第三方库

    datatime模块

    pickle 模块

    模块介绍:
      Python Module(模块),就是一个保存了Python代码的文件。模块能定义函数,类和变量。模块里也能包含可执行的代码。

      文件名就是模块名加上后缀.py,在模块内部,模块名存储在全局变量__name__中,是一个string,可以直接在module中通过__name__引用到module name。

    模块分为三种:

    • 自定义模块
    • 内置标准模块(又称标准库)
    • 开源模块

    导入模块:

    • import: 使客户端(导入者)以一个整体获取一个模块。
    • from:容许客户端从一个模块文件中获取特定的变量名。
    • reload:在不中止Python程序的情况下,提供了一个重新载入模块文件代码的方法。
    import module
    from module.xx.xx import xx
    from module.xx.xx import xx as rename 
    from module.xx.xx import *

    模块路径:

    #获取路径
    import sys
    for i in sys.path:
        print(i)
    #输出结果:
    S:Myproject
    S:Python 3.5.1python35.zip
    S:Python 3.5.1DLLs
    S:Python 3.5.1lib                  #存放标准库
    S:Python 3.5.1
    S:Python 3.5.1libsite-packages    #存放第三方库,扩充库
     
    #添加路径
    import sys
    import os
    pre_path = os.path.abspath('../')
    sys.path.append(pre_path)

     开源模块:

    #先安装 gcc 编译和 python 开发环境
    yum install gcc
    yum install python-devel
    或
    apt-get python-dev
     
    #安装方式(安装成功后,模块会自动安装到 sys.path 中的某个目录中)
    yum
    pip
    apt-get
    ...
    #进入python环境,导入模块检查是否安装成功

    time & datetime 模块

    时间相关的操作,时间有三种表示方式:

    • 时间戳              1970年1月1日之后的秒,即:time.time()
    • 格式化的字符串     2014-11-11 11:11,    即:time.strftime('%Y-%m-%d')
    • 结构化时间         元组包含了:年、日、星期等... time.struct_time    即:time.localtime()
      import time
      print(time.time())                  #返回当前系统时间戳(1970年1月1日0时0分0秒开始)
      print(time.ctime())                 #输出Tue May 17 16:07:11 2016,当前系统时间
      print(time.ctime(time.time() - 86400))        #将时间戳转换为字符串格式
      print(time.gmtime(time.time() - 86400))      #将时间戳转换为struct_time格式
      print(time.localtime(time.time() - 86400))     #将时间戳转换为struct_time格式,返回本地时间
      print(time.mktime(time.localtime()))         #与time.localtime()功能相反,将struct_time格式转回成时间戳格式
      #time.sleep(5)                    #sleep停顿
      print(time.strftime("%Y-%m-%d %H:%M:%S",time.gmtime()))  #将struct_time格式转成指定的字符串格式
      print(time.strptime("2016-05-17","%Y-%m-%d"))   #将字符串格式转换成struct_time格式
       
       
      print("----------------------------------------------------------------")
      import datetime
      print(datetime.date.today())             #输出格式 2016-05-17
      print(datetime.date.fromtimestamp(time.time() - 86400)) #2016-05-16 将时间戳转成日期格式
      current_time = datetime.datetime.now()
      print(current_time)                 #输出2016-05-17 16:18:28.737561
      print(current_time.timetuple())          #返回struct_time格式
      print(current_time.replace(2008,8,8))         #输出2008-08-08 16:21:34.798203,返回当前时间,但指定的值将被替换
       
      str_to_date = datetime.datetime.strptime("28/7/08 11:20","%d/%m/%y %H:%M")  #将字符串转换成日期格式
      new_date = datetime.datetime.now() + datetime.timedelta(days=10)         #比现在加10天
      new_date = datetime.datetime.now() + datetime.timedelta(days=-10)       #比现在减10天
      new_date = datetime.datetime.now() + datetime.timedelta(hours=-10)       #比现在减10小时
      new_date = datetime.datetime.now() + datetime.timedelta(seconds=120)      #比现在+120s
      print(new_date)

      sys模块

    • 用于提供对解释器相关的操作
    • sys.argv           命令行参数List,第一个元素是程序本身路径(命令行的参数
      比如用python test.py arg1 arg2运行test.py代码

      那么argv列表的内容是[' test.py','arg1','arg2']) sys.exit(n) 退出程序,正常退出时exit(0) sys.version 获取Python解释程序的版本信息 sys.maxint 最大的Int值 sys.path 返回模块的搜索路径,初始化时使用PYTHONPATH环境变量的值 sys.platform 返回操作系统平台名称 sys.stdin 输入相关 sys.stdout 输出相关 sys.stderror 错误相关
    • # 手写进度条
      import sys,time
      for ii in range(101):
          sys.stdout.write('
      ')  #每一次清空原行。
          sys.stdout.write("%s%%  |%s|"%(int(int(ii)/100*100),int(int(ii)/100*100) * '#'))     #一共次数除当前次数算进度
          sys.stdout.flush()      #强制刷新到屏幕
          time.sleep(0.05)
    • 读写用户的输入,根据用户的输入创建一个相应的目录。
    • import sys,os
    • print(sys.argv[1])
    •  
    • json & picle 模块

    • 用于序列化的两个模块

      • json,用于字符串 和 python数据类型间进行转换
      • pickle,用于python特有的类型 和 python的数据类型间进行转换

      Json模块提供了四个功能:dumps、dump、loads、load

      pickle模块提供了四个功能:dumps、dump、loads、load

        dump()函数接受一个文件句柄和一个数据对象作为参数,把数据对象以特定的格式保存 到给定的文件中。当我们使用load()函数从文件中取出已保存的对象时,pickle知道如何恢复这些对象到它们本来的格式。

        dumps()函数执行和dump() 函数相同的序列化。取代接受流对象并将序列化后的数据保存到磁盘文件,这个函数简单的返回序列化的数据。

        loads()函数执行和load() 函数一样的反序列化。取代接受一个流对象并去文件读取序列化后的数据,它接受包含序列化后的数据的str对象, 直接返回的对象。

    • ##### json.loads 将字符串转换为python基本数据类型 列表字典 #####
      import json
      l = '["nick","jenny","car"]'
      print(l,type(l))
      l = json.loads(l)
      print(l,type(l))
       
      l = '{"k1":"nick","k2:":"jenny"}'
      print(l,type(l))
      l = json.loads(l)
      print(l,type(l))
       
      ##### json.dumps 将python的数据类型列表字典转换为字符串 ######
      import json
      l = ["nick","jenny","car"]
      print(l,type(l))
      l = json.dumps(l)
      print(l,type(l))
       
      l = {"k1":"nick","k2:":"jenny"}
      print(l,type(l))
      l = json.dumps(l)
      print(l,type(l))
       
      ##### json dump、load 文件相关 #####
      import json
      l = {"k1":"nick","k2:":"jenny"}
      json.dump(l,open('db','w'))
       
      ret = json.load(open('db'))
      print(ret)

       购物车程序:

    • import pickle
      
      accounts = {
      1000:{
      'name' = 'Alex Li'
      'email' = '1231231@qq.com'
      'passwd' = 'scac'
      'balance' = 12345
      'phone' = 1231235
      
      }
      }
      
      f = open('account.db','wb')
      f.write(pickle.dumps(account))
      f.close()
      
      #以下是shopping代码块 消费
      import pickle
      acc_file_name = 'account.db'
      account_file = open(acc_file_name','rb')
      account_dic = pickle.loads(account_file.read())
      account_file.close()
      
      account_dic[1000]['balance'] -= 500
      
      f = open(acc_file_name,'wb')
      f.write(pickle.dumps(accunt_dic))
      f.close()
      print(account_dic)
      
      #以下为checkout程序
      import pickle
      
      f = open("account.db","rb")
      
      account_db = pickle.loads(f.read())
      print(account_db)
  • 相关阅读:
    Taskbar missing in ubuntu 10.04
    Ubuntu中如何安装*.sty文件(TeTeX或Tex Live)
    Install Fcitx on Ubuntu
    ROS(Robot Operating System)维基百科页面发布了!
    我的fedora,崩溃了。
    分享一个小巧简单的基金查询工具(自己写的)
    软件说明书——基于V0.2.2
    [linux笔记]火狐扩增从windwos导到ubuntu。
    [Linux笔记]下载软件选择篇
    [linux笔记]第一次工作上用了平时学习的东西。
  • 原文地址:https://www.cnblogs.com/cmpunk/p/7749979.html
Copyright © 2011-2022 走看看