原創作品,允許轉載,轉載時請務必以超連結形式標明文章 原始出處 、作者資訊和本聲明。否則將追究法律責任。http://blog.csdn.net/github_27109687/article/details/73850886—Test_huhy部落格
模組其實就是一個python檔案。匯入模組(無論是用‘import 模組’還是用‘from 模組 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 runrun()#如果在product模組匯入同一個目錄下model裡的run函數的話,則直接使用‘run()’from model import * run()#product模組從同一個目錄下的model裡匯入所有的函數,記住:這種方法慎用,因為多個模組的話,這樣使用不便於找到函數所在的模組。如果使用run函數的話,則直接使用‘run()’from model import nameprint(name) #product模組匯入同一個目錄下model裡的name變數,則name可以被拿來直接使用,比如:print(name)#(2)針對不同目錄下:#前提是:項目下有day1和day兩個目錄下,day1下有CMS模組,模組裡有hhh()函數和user_filename變數;day裡有product模組from day1 import CMSCMS.hhh()#或者from day1.CMS import hhhhhh()#day下的product模組裡匯入day1下模組裡的hhh函數from day1.CMS import user_filenameprint(user_filename)#day下的product模組裡匯入day1下模組裡user_filename變數
二、Python的環境變數
環境變數就是用來讓使用者在任意一個目錄都可以運行使用命令(比如:python)。匯入模組的時候,python首先在目前的目錄下去找這個模組,如果在目前的目錄下沒有找到這個檔案的話,那麼就去環境變數裡面找該目錄。在pycharm運行,預設會把2個目錄路徑加入Python環境路徑裡,其中一個是目前的目錄,另外一個是當前的項目目錄,然而在cmd命令運行或伺服器裡運行,則需要自己手動把目錄加入到環境變數,否則會找不到模組。由此所以,代碼裡最好把當前項目目錄加入到環境變數裡。
記住一點:python代碼運行結束,加入環境變數的路徑就會自動去掉。
import syssys.path.insert(0,r'xxxx') #‘xxxx’是路徑地址
三、random模組
import randomprint(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)
四、string模組
#string模組import stringprint(string.ascii_letters)#擷取所有的大小寫字母,返回的是一個字串print(string.ascii_lowercase)#擷取所有的小寫字元,返回字串print(string.ascii_uppercase)#擷取所有的大寫字元,返回字串print(string.digits)#擷取所有的數字,返回字串
五、json模組
字典和list類型都可以通過json進行格式化。json也是一種資料類型,它裡也有list和字典。
#json.loads()方法,例子如下:import json,requestsurl='http://video.tudou.com/subscribe/check?uid=UNDY1NjIwNDkwNA%3D%3D&_=1498723117672'res=requests.get(url).textprint(type(res))res_ll=json.loads(res)#json串轉為字典print(type(res_ll)#json.load()方法,例子如下:import jsonfr=open('asg.json')new_res=json.load(fr)#把檔案裡的json串轉換成字典,load方法是傳入一個檔案對象,然後load方法自動去讀這個檔案的內容,然後轉成字典print(new_res)print(type(new_res))#json.dumps()方法,例子如下:import jsondic={ 'username':'huhy', 'age':34, 'sex':'女'}dic_j=json.dumps(dic) #字典轉成json字串print(dic_j)print(type(dic_j))#json.dump()方法,例子如下:import jsondic={ 'username':'huhy', 'age':34, 'sex':'女'}fw=open('zzh','w')json.dump(dic,fw)#操作檔案,把字典轉成字串,然後直接寫到檔案裡
六、time/datetime模組
時間有三種格式:第一種是時間戳記、第二種是格式化時間、第三種就是時間元組
import time,datetimetime.sleep(1)#程式休息幾秒print(time.time())#擷取目前時間戳print(time.localtime(1497950139))#擷取時間元組,其中1497950139是時間戳記;預設是當前時區UTC+8print(time.localtime())#時間戳記不寫的話,預設擷取目前時間元組print(time.gmtime(1498732057.6223967))#擷取時間元組,預設是標準時區UTCprint(time.strftime("%Y-%m-%d %H:%M:%S",time.gmtime(1498732057.6223967)))# #將時間元組1498732057.6223967轉換成格式化時間 2017-06-29 10:27:37print(time.strftime("%Y-%m-%d %H:%M:%S"))#時間元組不寫的話,預設擷取當前格式化時間print(time.asctime())#將時間元群組轉換成格式化時間,括弧裡不寫預設目前時間。比如輸出:Fri Jul 14 14:36:57 2017print(time.ctime(1498732057.6223967))#講時間戳記轉換成格式化時間,括弧裡不寫預設目前時間。比如輸出:Thu Jun 29 18:27:37 2017print(datetime.datetime.now())#將目前時間格式化輸出 2017-06-29 18:35:24.570104print(datetime.datetime.now()+datetime.timedelta(3))#3天后的時間print(datetime.datetime.now()+datetime.timedelta(-3))#3天前的時間
七、os/sys模組
import sysprint(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)
import os,timeprint(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,否則返回Falseprint(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,否則返回Falseprint(os.path.isfile(r'D:\learning\huhy\sample\huat\case.txt'))#判斷該絕對路徑是否是檔案print(os.path.isdir(r'D:\learning\huhy\sample\huat'))#判斷是否是路徑