python06-模块(一)

模块

模块分类

  • 自定义模块
  • 内置模块
  • 第三发模块
# 内置模块
userName = input('please input your name:')
passWord = getpass.getpass('please input your password:')
print(userName, passWord)

模块概述

  • 并不需要所有功能都自己完成,引用别人的模块来实现已有的功能
  • python有非常丰富的库文件,内置300多个库
  • 一个库文件包含多个模块

python常用的模块

  • time:作为时间戳,时间转换,休眠等

    • time.sleep(second):休眠
    • time.time():时间戳
    • time.ctime:字符串格式时间
    • time.ctime(time):格式化时间
    • time.gmtime():年月日时分秒分开的对象
    import time
    
    timeNow = time.time()
    print(timeNow)  # 从1970年1月1日到现在过了多少秒
    
    ctime = time.ctime()
    print(ctime)  # Tue May  2 19:12:08 2017
    
    ctime = time.ctime(timeNow - 60 * 60 * 24)
    print(ctime)  # Tue May  2 19:10:35 2017
    
    gmtime = time.gmtime()
    print(gmtime)
    # time.struct_time(tm_year=2017, tm_mon=5, tm_mday=2, tm_hour=11, tm_min=19, tm_sec=44, tm_wday=1, tm_yday=122, tm_isdst=0)
    print('%s-%s-%s' % (gmtime[0], gmtime[1], gmtime[2])) # 2017-5-2
    
    localtime = time.localtime()
    print(localtime)
    # time.struct_time(tm_year=2017, tm_mon=5, tm_mday=2, tm_hour=19, tm_min=37, tm_sec=26, tm_wday=1, tm_yday=122, tm_isdst=0)
    localtime = time.localtime(time.time())
    print(localtime) # 同上
    
    mktime = time.mktime(time.localtime())
    print(mktime) # 将时间对象转为时间戳
    
    print(time.strftime('%Y-%m-%d %H-%M-%s', time.localtime())) # 格式化
    print(time.strptime('2016-01-08', '%Y-%m-%d')) # 将时间转时间对象
    
  • datatime:

import datetime
import time

print(datetime.datetime.today(), 'today') # 2017-05-03 09:34:41.340311 today
print(datetime.datetime.fromtimestamp(time.time()), 'from time stamp') # 2017-05-03 09:34:41.340482 from time stamp
print(datetime.datetime.now(), 'now') # 2017-05-03 09:34:41.340503 now
# 以后常用到的方法:
data = datetime.datetime.now() - datetime.timedelta(days=10) # 前10天
print(data)
  • sys:关于python解析器的一些操作

    • sys.argv:terminal执行python文件时带的参数
      • 使用场景:获取解析器解析py文件时传入的参数,根据不同的参数执行不同的函数,以后经常用作执行脚本
      • 多个参数之间用空格分开,argv最少有一个参数,默认为文件名.py
    • sys.path:库/模块文件的搜索路径,默认先在自己项目里面搜,然后再去内置模块里搜,最后去第三发模块下搜(site-package)
      • 不在同一个目录下的模块不能导入,如果想像内置模块那样引用,在哪个位置都可以倒入,则可以把py文件放在site-package文件夹下
      • 或者将py文件的路径添加到sys.path(列表)里面
    • sys.exit(num) # 0==正常退出
    • sys.maxint():最大整数
    • sys.version:python解析器版本
    • sys.platform:平台版本
    • sys.stdout.write():向屏幕输出,进度条
    import sys
    import time
    def showProgress(cur, total):
        time.sleep(0.1)
        sys.stdout.write("\r%4d%% %s"%(100 if cur == total -1 else cur * 100 // total, '-' * cur))
    
    total = 100
    for i in range(total):
        showProgress(i, total)
    
  • pickle

    • 我们把数据存储在字典(dict)里便于管理,当我们想要把字典里的数据持久化(保存到本地)时,python不支持直接把字典写到文件里,会报错:
    dic = {
        'name':'yhh',
        'age':'25',
        'gender':'nan'
    }
    
    with open('xxx.txt', mode='w') as file:
        file.write(dic) # TypeError: write() argument must be str, not dict
    
    print('finish')
    
    • 此时我们需要借助python的pickle模块将字典进行序列化和反序列化
    import pickle
    
    dic = {
        'name':'yhh',
        'age':'25',
        'gender':'nan'
    }
    
    with open('xxx.txt', mode='rb') as file:
        p = pickle.dumps(dic)
        file.write(p)
    
    with open('xxx.txt', mode='rb') as file:
        b = file.read()
        dic = pickle.loads(b)
        print(dic) # {'age': '25', 'name': 'yhh', 'gender': 'nan'}
    
    • pickle的方法:

      • load():直接读取文件
      • loads():从内存中读取字节内容(先从文件中读取,再传入load方法中)
      • dump():直接写到文件里
      • dumps():先转换成字节,然后自己手动写入文件里面
      with open('xxx.txt',mode='wb') as file:
          pickle.dump(dic, file)
      
  • json

    • 和pickle一样是操作字典,但是不一样的是dumps的到的结果是json字符串,而不是序列化后的字节
    • josn和pickle用的api一样
    import json
    dic = {
        'name':'yhh',
        'age':'25',
        'gender':'nan'
    }
    jsonStr = json.dumps(dic)
    print(jsonStr) # {"gender": "nan", "name": "yhh", "age": "25"}
    
  • json和pickle区别

    • json一般用于网络通信的json字符串和dict对象之间的转换,dict对象便于修改和获取数据
    • pickle用于数据的序列化和用于持久化
    • json不是所有的格式都可以转换,例如时间格式转换的时候会报错,必须是严格的json格式
    • pickle对于任何格式的数据都可以序列化,比json强大,但是数据不能进行网络通信

安装外部框架

  • 在python安装目录下,cd script
  • pip.exe install django
  • pip.exe uninstall django
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 206,378评论 6 481
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 88,356评论 2 382
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 152,702评论 0 342
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 55,259评论 1 279
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 64,263评论 5 371
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 49,036评论 1 285
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,349评论 3 400
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,979评论 0 259
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 43,469评论 1 300
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,938评论 2 323
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,059评论 1 333
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,703评论 4 323
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,257评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,262评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,485评论 1 262
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,501评论 2 354
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,792评论 2 345

推荐阅读更多精彩内容