1. 程式人生 > >簡述python 的模組的分析

簡述python 的模組的分析

模組其實就是一個python檔案。匯入模組(無論是用'import模組'還是用'來自模組匯入xxx)本質就是除if__name __ ='__ main'程式碼外,把該模組裡的所有內容從頭到尾執行一遍。

一,匯入模組的概念

#(1)針對同一個目錄下:
#前提:day檔案裡有product模組和model是模組。run是model模組裡的函式,name是model檔案裡的變數

import model 
model.run()
print(model.name)
#在product模組匯入同一個目錄下的model.py檔案,如果呼叫run函式的話,則使用‘model.run()’;如果呼叫name變數話,則使用‘model.name’,比如:print(model.name)

from model import run
run()
#如果在product模組匯入同一個目錄下model裡的run函式的話,則直接使用‘run()’

from model import * 
run()
#product模組從同一個目錄下的model裡匯入所有的函式,記住:這種方法慎用,因為多個模組的話,這樣使用不便於找到函式所在的模組。如果使用run函式的話,則直接使用‘run()’

from model import name
print(name) 
#product模組匯入同一個目錄下model裡的name變數,則name可以被拿來直接使用,比如:print(name)

#(2)針對不同目錄下:
#前提是:專案下有day1和day兩個目錄下,day1下有CMS模組,模組裡有hhh()函式和user_filename變數;day裡有product模組

from day1 import CMS
CMS.hhh()
#或者
from day1.CMS import hhh
hhh()
#day下的product模組裡匯入day1下模組裡的hhh函式

from day1.CMS import user_filename
print(user_filename)
#day下的product模組裡匯入day1下模組裡user_filename變數
  • 1
  • 2
  • 3
  • 4
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 三十
  • 31
  • 32
  • 33

二,Python中的環境變數

環境變數就是用來讓使用者在任意一個目錄都可以執行使用命令(比如:蟒)匯入模組的時候,蟒首先在當前目錄下去找這個模組,如果在當前目錄下沒有找到這個檔案的話,那麼就去環境變數裡面找該目錄。在pycharm執行,預設會把2個目錄路徑加入的Python環境路徑裡,其中一個是當前目錄,另外一個是當前的專案目錄,然而在CMD命令執行或伺服器裡執行,則需要自己手動把目錄加入到環境變數

,否則會找不到模組由此所以,程式碼裡最好把當前專案目錄加入到環境變數裡
記住一點:蟒蛇程式碼執行結束,加入環境變數的路徑就會自動去掉。

import sys
sys.path.insert(0,r'xxxx') #‘xxxx’是路徑地址
  • 1
  • 2

三,隨機模組

import random
print(random.random()) #獲取隨機浮點數,預設取0-1,不能指定範圍
print(random.uniform(1,34)) #獲取隨機浮點數,可以指定範圍
print(random.randint(1,366)) #隨機取整數,可以指定範圍
print(random.randrange(1,366))#隨機取整數,可以指定範圍
print(random.choice(['x45yqty',5,7,'a']))#隨機從可迭代物件裡去一個元素
print(random.sample(('x45yqty',5,7,'a',89,6),3)) #隨機從可迭代物件裡取幾個元素,返回元組
x=[1,2,3,4,5,7,8,10,'aty']
random.shuffle(x) #洗牌,打亂原list的順序,會改變原來的list值
print(x)
  • 1
  • 2
  • 3
  • 4
  • 6
  • 7
  • 8
  • 9
  • 10

四,串模組

#string模組
import string
print(string.ascii_letters)#獲取所有的大小寫字母,返回的是一個字串
print(string.ascii_lowercase)#獲取所有的小寫字元,返回字串
print(string.ascii_uppercase)#獲取所有的大寫字元,返回字串
print(string.digits)#獲取所有的數字,返回字串
  • 1
  • 2
  • 3
  • 4
  • 6

五,JSON模組

字典和列表型別都可以通過JSON進行格式化以.json也是一種資料型別,它裡也有列表和字典。

#json.loads()方法,例子如下:

import json,requests
url='http://video.tudou.com/subscribe/check?uid=UNDY1NjIwNDkwNA%3D%3D&_=1498723117672'
res=requests.get(url).text
print(type(res))
res_ll=json.loads(res)#json串轉為字典
print(type(res_ll)

#json.load()方法,例子如下:
import json
fr=open('asg.json')
new_res=json.load(fr)
#把檔案裡的json串轉換成字典,load方法是傳入一個檔案物件,然後load方法自動去讀這個檔案的內容,然後轉成字典
print(new_res)
print(type(new_res))

#json.dumps()方法,例子如下:
import json
dic={
    'username':'huhy',
    'age':34,
    'sex':'女'
}
dic_j=json.dumps(dic) #字典轉成json字串
print(dic_j)
print(type(dic_j))

#json.dump()方法,例子如下:
import json
dic={
    'username':'huhy',
    'age':34,
    'sex':'女'
}
fw=open('zzh','w')
json.dump(dic,fw)#操作檔案,把字典轉成字串,然後直接寫到檔案裡
  • 1
  • 2
  • 3
  • 4
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 三十
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37

六,時間/日期時間模組

時間有三種格式:第一種是時間戳,第二種是格式化時間,第三種就是時間元組

import time,datetime
time.sleep(1)#程式休息幾秒
print(time.time())#獲取當前時間戳
print(time.localtime(1497950139))#獲取時間元組,其中1497950139是時間戳;預設是當前時區UTC+8
print(time.localtime())#時間戳不寫的話,預設獲取當前時間元組
print(time.gmtime(1498732057.6223967))#獲取時間元組,預設是標準時區UTC
print(time.strftime("%Y-%m-%d %H:%M:%S",time.gmtime(1498732057.6223967)))
# #將時間元組1498732057.6223967轉換成格式化時間   2017-06-29 10:27:37
print(time.strftime("%Y-%m-%d %H:%M:%S"))#時間元組不寫的話,預設獲取當前格式化時間
print(time.asctime())#將時間元組轉換成格式化時間,括號裡不寫預設當前時間。比如輸出:Fri Jul 14 14:36:57 2017
print(time.ctime(1498732057.6223967))#講時間戳轉換成格式化時間,括號裡不寫預設當前時間。比如輸出:Thu Jun 29 18:27:37 2017
print(datetime.datetime.now())#將當前時間格式化輸出  2017-06-29 18:35:24.570104
print(datetime.datetime.now()+datetime.timedelta(3))#3天后的時間
print(datetime.datetime.now()+datetime.timedelta(-3))#3天前的時間
  • 1
  • 2
  • 3
  • 4
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14

七,OS / SYS模組

import sys
print(sys.argv)#獲取命令列引數list,第一個元素是程式本身路徑,後面的元素是引數
print(sys.version)#獲取Python解釋程式的版本資訊
print(sys.path)#返回模組的搜尋路徑,初始化使用PYTHONPATH環境變數的值
print(sys.platform)#返回作業系統平臺名稱
sys.stdout.write('please:')#向螢幕輸出一句話,等價於:print('please:')
val=sys.stdin.readline()[:-1]#獲取輸入的
sys.exit(0)#退出程式,正常退出時exit(0)
  • 1
  • 2
  • 3
  • 4
  • 6
  • 7
  • 8
import  os,time
print(os.getcwd())#獲取當前工作目錄,絕對路徑
os.chmod('\user\bin',7)#linux環境下,給檔案/目錄加許可權
print(os.chdir(r'D:\learning\huhy'))
#更改當前目錄,到指定目錄中
print(os.makedirs("OS/huhy1/hat1"))#在父目錄下遞迴建立資料夾
print(os.removedirs("OS/file"))#遞迴刪除空目錄,若不是空目錄無法刪除,會報錯
print(os.mkdir('huat'))#建立資料夾,若資料夾已存在則會報錯
os.rmdir(r"D:\learning\huhy\sample\huat")#刪除資料夾
print(os.remove(r'D:\learning\huhy\sample\huat\sss.txt'))#刪除檔案,若檔案找不到會報錯
os.rename(r'huat\test.txt',r'huat\case.txt')#重新命名檔案的名稱
print(os.stat(r'huat\case.txt'))#獲取檔案資訊
print(os.name)#顯示當前使用的平臺
print(os.sep)#當前作業系統的路徑分隔符
print(os.environ)#當前系統的環境變數
print(os.pathsep)#當前系統的環境變數中每個路徑的分隔符,linux是‘,’,windows是‘;’
print(os.linesep)#當前作業系統的換行符
with open('huat\case.txt','w',encoding='utf-8') as fw:
    fw.write('ddddd')
    fw.write(os.linesep)
    fw.write('taayy')
print(os.path.abspath(__file__))#獲取當前檔案的絕對路徑
print(__file__)#這個也會獲取到當前檔案的路徑,但是路徑裡面的斜槓不符合路徑格式
print(os.path.split('huat\case.txt'))#分割檔案和路徑名稱
print(os.path.dirname(r'\usr\local\bin'))#獲取父目錄
print(os.path.exists(r'\usr\local\bin\a.txt'))#判斷檔案目錄/檔案是否存在,存在就返回True,否則返回False
print(os.path.join(os.path.dirname(os.path.abspath(__file__)),'huat'))#拼接成一個路徑
print(os.path.join(r'D:\learning\huhy\sample','huat'))#同上,拼接路徑
print(os.listdir('.'))#列出當前目錄下的所有檔案
print(os.listdir('..'))#列出父目錄下的所有檔案
print(os.path.getatime(r'D:\learning\huhy\day\login.py'))
print(time.strftime("%Y-%m-%d %H:%M:%S",time.localtime(os.path.getatime(r'D:\learning\huhy\day\login.py'))))
#os.path.getatime輸出最近訪問時間戳
print(time.strftime("%Y-%m-%d %H:%M:%S",time.localtime(os.path.getmtime(r'D:\learning\huhy\day\login.py'))))
#os.path.getmtime輸出最近修改時間戳
print(time.strftime("%Y-%m-%d %H:%M:%S",time.localtime(os.path.getctime(r'D:\learning\huhy\day\login.py'))))
#os.path.getctime輸出檔案建立時間戳
print(os.curdir)#當前目錄
print(os.pardir)#父目錄
print(os.path.basename(r'\usr\local\bin\a.txt'))#獲取最後一級,如果是檔案顯示檔名,如果是目錄顯示目錄名
print(os.path.isabs(r'D:\sample\huat\sss.txt'))#判斷是否是絕對路徑,是絕對路徑返回True,否則返回False
print(os.path.isfile(r'D:\learning\huhy\sample\huat\case.txt'))#判斷該絕對路徑是否是檔案
print(os.path.isdir(r'D:\learning\huhy\sample\huat'))#判斷是否是路徑