python常用模塊

yield

  • yield的語句形式 yield 1

  • yield的表達式形式 x=yield

表達式形式的yield,協程函數

def eater(name):
    print('%s ready to eat' %name)
    while True:
        food yield
        print('%s start to eat %s'%(name,food))
g=eater('Tom') #製作生成器
next(g) #生成器初始化,執行時碰到yield暫停,相當g.send(None)
g.send('黃燜雞') #在暫停處繼續運行,將值傳給food

 功能

  1. x=yield

  2. g.send('111'),先把111傳給yield,由yield賦值給x

  3. 然後再往下執行,知道再次碰到yield停止,然後把yield後的返回值返回

導入包

  • 包是包含有init.py文件的目錄

  • 包的用途:是從目錄級組織模塊

  • 包相當於一個模塊,本質還是給使用者

導入模塊乾的事情

  1. 產生新的名稱空間

  2. 以新建的名稱空間爲全局名稱空間,執行模塊中的代碼

  3. 拿到模塊名,指向該模塊差生的名稱空間

if name == 'main'

此時當做腳本執行 將需要執行的部分和需要被導入的部分分開

模塊搜索路徑

  • 先從內存找 ---> 內置模塊 ---> sys.path路徑

常用模塊

time

  • 時間戳 print(time.localtime().tm_year)

  • 格式化輸出 print(time.strtime('%Y-&m-%d %H:%M:%S'))

json

  • 把數據從內存中序列化的存儲到磁盤中 序列化過程:dic ---> res=json.dumps(dic)--->f.write(res) 反序列化過程:res=f.read()--->res.json.loads(res)--->dic=reswith open('a.json','r') as f: dic=json.loads(f.read()) print(dic,type(dic))

json便捷操作

  1. 序列化 import json dic={ 'go':'die', 'hehe':'哈哈', } json.dump(dic,open('b.json','w')) #直接打開文件寫入

  2. 反序列化

res=json.load(open('b.json','r')) #直接打開json文件 print(res,type(res))

pickle只支持python這種語言

os & sys

`import os
print(os.getcwd()) #當前所在目錄
print(os.listdir()) #當前目錄下文件
print(os.name)
print(os.path.abspath(''))
print(os.path.getsize(r'C:\Users\Administrator\PycharmProjects\17\day6'))
print(os.path.dirname(os.path.dirname(os.path.abspath(__file__)))) #取出目錄名字
`

import sys,time

print(sys.argv)  # list形式取出當前絕對路徑形式的名字
print(sys)

for i in range(50):
    sys.stdout.write('%s\r' % ('#' * i)) #\r 爲移動到行首
    sys.stdout.flush() #立即刷新到終端
    time.sleep(0.1)

logging模塊

日誌級別種類,數值越大越嚴重,從數值小的開始匹配
  1. CRITICAL = 50

  2. FATAL = CRITICAL

  3. ERROR = 40

  4. WARNING = 30

  5. WARN = WARNING

  6. INFO = 20

  7. DEBUG = 10

  8. NOTSET = 0

    import logging 
    
    logging.basicConfig(filename='access.log',
        format='%(asctime)s - %(name)s - %(levelname)s -%(module)s:  %(message)s',
        datefmt='%Y-%m-%d %H:%M:%S %p',
        level=40,
        )
    
    logging.debug('debug')
    logging.info('info')
    logging.warning('warning')
    logging.error('error')
    logging.critical('critical')


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章