1、模塊、包python
什麼是模塊?linux
模塊實質上就是一個python文件,它是用來組織代碼的,意思就是說把python代碼寫到裏面,文件名就是模塊的名稱,test.py test就是模塊名稱。git
什麼是包?sublime-text
包,package本質就是一個文件夾,和文件夾不同的是它有一個__init__.py文件,包是從邏輯上來組織模塊的,也就是說它是用來存放模塊的,若是你想導入其餘目錄下的模塊,那麼這個目錄必須是一個包才能夠導入。dom
導入模塊spa
import module #導入模塊 from module import * #導入該模塊中的全部方法,慎用 from module import fun as xx_fun #導入指定的方法,而後起別名 from module import fun1,fun2,fun3 #導入模塊下的多個方法 import module,實際上就是把該模塊的代碼賦值給模塊名,也就是module.py裏面全部的代碼,賦值給了module這個變量,若是是from module import fun,就是把module打開,把module裏面的fun方法拿過來使用
導入模塊的本質,就是把python文件拿過來執行一次。unix
使用包中的模塊須要在__init__.py文件中from *** import xxxcode
2、OS模塊orm
window 路徑分隔符\, linux或MAC 路徑分隔符 /,'\\'其中一個爲轉義符,r'絕對路徑/文件名'裏面的路徑分隔符不用加轉義符,r'純文本'blog
import os print(os.getcwd())#獲取當前的路徑 os.mkdir('wy')#當前目錄下建立文件夾 os.mkdir('e:\\wangyang')#絕對路徑下建立文件夾 os.makedirs('zz')#當前目錄建立文件夾或按照絕對路徑建立 #建立兩級目錄 os.mkdir('stu\\laowang')#父目錄不存在會報錯 os.makedirs('stu\\laowang')#父目錄不存在的時候會幫你建立父目錄 os.listdir(r'e:')#獲取某個路徑下的文件 os.listdir('.')#當前目錄下的文件,返回值是list,將全部的文件放在一個list os.rmdir('stus')#只能刪除空文件夾
print(os.path.join('stu','a.txt'))#根據當前系統,拼接路徑,他會自動識別路徑分隔符stu\a.txt print(os.sep)#當前系統的路徑分隔符,window--\,linux\MAC--/ print(os.path.dirname('e:\\nhy\\stu\\a.txt'))#獲取父目錄的路徑e:\nhy\stu,根據你所傳參數爲準,以參數做爲整個路徑 print(os.path.getsize('stu\\test0\\a.txt'))#獲取文件的大小 print(os.path.exists('user/local'))#判斷文件或者文件夾,是否存在,若是不存在返回false,若是存在返回true print(os.path.isdir('stu'))#判斷是不是文件夾,若是文件夾不存在返回false print(os.path.isfile('stu\\test0\\a.txt'))#判斷是不是文件,若是文件不存在返回false print(os.path.split(r'.\stu\test0\a.txt'))#分割文件名與路徑,結果爲:('.\\stu\\test0', 'a.txt')
os.walk(r'.\logs')#返回這三個信息:目錄、目錄包含的文件夾列表、目錄包含的文件列表 for cur,dir,f in os.walk(r'.\stu'): print(cur,dir,f)#cur爲當前目錄,dir爲目錄包含的全部文件夾,f爲目錄包含的全部文件
練習:
#當前目錄下,在末尾是偶數的文件夾中,建立一個a.txt文件,裏面隨便寫點東西 dirs = os.listdir('.') for i in dirs: if int(i[-1])%2==0: with open(r'.\stu\%s\a.txt'%i,'a+',encoding='utf-8') as file: file.write('wangyang奮鬥奮鬥')
3、random模塊
import random print(random.random())#隨機浮點數,默認取0-1,不能指定範圍,eg.0.5963688623020358 print(random.randint(1,20))#隨機整數 print(random.randrange(1,20))#隨機產生一個range print(random.choice('x23serw4'))#隨機取一個元素 print(random.sample('hello',2))#從序列中隨機取幾個元素 print(random.uniform(1,9))#隨機取浮點數,能夠指定範圍 x = [1,2,3,4,6,7] random.shuffle(x)#洗牌,打亂順序,會改變原list的值 print(x)
4、date、datetime模塊
時間戳 從unix元年開始到如今過得秒數,格式好時間2018-07-01
print(time.time())#獲取當前時間戳, print(int(time.time()))#獲取當前時間戳,整型 print(time.strftime('%Y-%m-%d %H:%M:%S'))#2018-07-01 17:03:07 Y四位年 print(time.strftime('%y-%m-%d %H:%M:%S'))#18-07-01 17:03:07 y兩位年 print(int(time.time())-10*24*60*60)#追溯到10天前,返回值爲時間戳
print(time.mktime(time_tuple))#時間元組轉爲時間戳
時間元組 print(time.gmtime())#把時間戳轉爲元組,若是不傳時間戳,那麼取得是標準時區的時間 print(time.localtime())#把時間戳轉爲元組,若是不傳時間戳,那麼取得是當前時區的時間 print(time.localtime(int(time.time())-3*24*60*60))#把時間戳轉爲元組,傳時間戳,獲取三天前的時間元組 print(time.strftime('%Y-%m-%d %H:%M:%S',time.localtime(int(time.time())-3*24*60*60)))#將時間元組格式化,format爲必需參數,時間元組爲默認參數,默認爲None
執行結果爲:
時間戳:
1530871998.5078156
1530871998
2018-07-06 18:13:18
18-07-06 18:13:18
1530007998 時間元組: time.struct_time(tm_year=2018, tm_mon=7, tm_mday=6, tm_hour=10, tm_min=13, tm_sec=18, tm_wday=4, tm_yday=187, tm_isdst=0) time.struct_time(tm_year=2018, tm_mon=7, tm_mday=6, tm_hour=18, tm_min=13, tm_sec=18, tm_wday=4, tm_yday=187, tm_isdst=0) time.struct_time(tm_year=2018, tm_mon=7, tm_mday=3, tm_hour=18, tm_min=13, tm_sec=18, tm_wday=1, tm_yday=184, tm_isdst=0) 2018-07-03 18:13:18
時間戳轉格式化好的時間
1.首先要把時間戳轉成時間元組
2.再把時間元組轉成格式好的時間 def timestampToStr(timestamp=None,format='%Y-%m-%d %H:%M:%S'): if timestamp: time_tuple = time.localtime(timestamp) # 時間戳轉成時間元組 return time.strftime(format,time_tuple) #時間元組,經過format格式轉爲格式化好的時間 return time.strftime(format)#若是沒有傳遞時間元組,則默認格式化當前時間 print(timestampToStr(2234123120,'%Y%m%d')) print(timestampToStr(format='%Y%m%d'))
結果爲:20401018 20180706
格式化好的時間,轉爲時間戳 1.首先要把格式化好的時間,轉成時間元組 2.再把時間元組轉成時間戳 def strToTimestamp(format_time=None,format='%Y%m%d%H%M%S'): if format_time: time_tuple = time.strptime(format_time, format)#將格式化好的時間轉換爲時間元組,格式化好的時間格式必須和format格式一致 print(time_tuple) return int(time.mktime(time_tuple))#將時間元組轉爲時間戳 return int(time.time())#獲取當前時間戳整型 print(strToTimestamp('20401018054520','%Y%m%d%H%M%S')) 結果爲: time.struct_time(tm_year=2040, tm_mon=10, tm_mday=18, tm_hour=5, tm_min=45, tm_sec=20, tm_wday=3, tm_yday=292, tm_isdst=-1) 2234123120
5、string模塊
import string#先引入包才能使用 print(string.ascii_letters)#打印出全部的字母大小寫abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ print(string.ascii_lowercase)#打印出全部的字母小寫abcdefghijklmnopqrstuvwxyz print(string.ascii_uppercase)#打印出全部的字母大寫ABCDEFGHIJKLMNOPQRSTUVWXYZ print(string.digits)#打印出全部的數字 print(string.punctuation)#打印出全部的特殊字符 print(string.printable)#打印出所有