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.1\python35.zip
S:\Python 3.5.1\DLLs
S:\Python 3.5.1\lib                  #存放标准库
S:\Python 3.5.1
S:\Python 3.5.1\lib\site-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('\r')  #每一次清空原行。
        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)

     

posted on 2017-10-29 14:18  huzhehao  阅读(115)  评论(0编辑  收藏  举报

导航