模塊

sys: 它是和python運行環境相關的模塊

常用sys模塊功能
查看模塊查找目錄     :sys.path
查看當前導入的模塊  :sys.modules
查看當前操作系統     :sys.platform 
查看所有內嵌的模塊  :sys.builtin_module_names
退出當前程序       :sys.exit([n])    ----    當n 爲非0時,引發一個SystemExit異常
有時參數爲字符串時,字符串會成爲退出的提示信息。
                                   這也和python版本相關,有時並不會引發一個系統導常,而是會返回一個類似
                                   bash的狀態碼(需要使用linux執行)
程序接受參數       : sys.argv
     sys.argv      :表示當前程序所有參數
     sys.argv[0] :表示當前程序名
     sys.argv[1] :表示當前程序第一個參數
     sys.argv[2] :表示當前程序第二個參數

例: 用戶使用命令行的方式進行傳遞參數,參數可以是任意多個,將所有數字參數求和
# ./test.py 1 2 3 ab cd 100 ==> 106

參考:
    import  sys

    def listadd(L):
        ret = 0
        for i in L:
            try:
                i = int(i.strip())
            except:
                pass
            else:
                ret += i
        return ret

    if __name__ == '__main__':
        args = sys.argv[1:]
        ret = listadd(args)
        print(ret)

os模塊和操作系統相關

方 法 示 例 說 明
os.name                 os.name                             返回當前系統類型
os.getcwd()             os.getcwd()                         返回當前工作路徑
os.listdir()            os.listdir()                        返回當前目錄中所有文件及目錄
os.remove()             os.remove('1.txt')                  刪除 1.txt 文件
os.rmdir()              os.rmdir('tmp')                     刪除tmp目錄,tmp必須爲空目錄
os.mkdir()              os.mkdir('tmp')                     創建tmp目錄
os.chdir()              os.chdir('/root')                   切換目錄
os.makedirs()           os.makedirs('a/b/c')                創建多級目錄 
os.path.isfile()        os.path.isfile('6.txt')             判斷6.txt 是否爲文件
os.path.isdir()         os.path.isdir('tmp')                判斷tmp是否爲目錄 
os.path.exists()        os.path.exists('b')                 判斷 文件或目錄是否存在
os.path.abspath()       os.path.abspath('6.txt')            返回 6.txt 文件的絕對目錄
os.path.basename()      os.path.basename('/root/a.txt')     獲取文件名
os.path.dirname()       os.path.dirname('/root/a.txt')      獲取目錄名
os.system()             os.system('ls -l')                  執行系統命令,執行ls -l命令
os.popen()              ret = os.popen('ls -l')             執行系統命令,將結果放入到ret中,ret是一個文件對象。

例: 使用os模塊執行shell命令,得到/boot目錄中所有文件的大小總和
import os
def get_dirsize(dir):
size = 0
file = os.popen(‘ls -l {}’.format(dir))
file.readline()
for line in file:
tmp = line.split()[4]
size += int(tmp)
return size

if name == ‘main’:
dir = ‘/boot’
ret = get_dirsize(dir)
print(ret,“Bytes”)

shutil 常用函數

os模塊在處理文件和目錄時有不足之處,比如刪除有文件的目錄等,shutil是一個強有力的補充。
方 法 示 例 說 明
shutil.copy()           shutil.copy('test.py','test.bak')           拷貝文件
shutil.copytree()       shutil.copytree('tmp','tmp.d')              拷貝目錄,目錄可以非空
shutil.rmtree()         shutil.rmtree('tmp')                        遞歸刪除文件夾
shutil.move()           shutil.move('6.txt','../6.bak')             移動文件,也可以重命名

math 常用函數

方 法 示 例 說 明
round()         round(2.1251,2) -->  2.13       round(123456,-1) --> 123460 
                精確十位 四捨五入,保留2位小數,是python自帶函數,不是math中的(python3 取消)
math.ceil()         math.ceil(2.3)   -->  3 向上取整
math.floor()        math.floor(2.8) -->  2 向下取整
math.sqrt()         math.sqrt(4)     -->  2.0 開方
math.pow()          math.pow(2,3)  -->  8.0 乘方
math.log()          math.log(100,10)  -->  2.0 求以10爲底100的對數,默認底爲 e
math.e              math.e -->  2.7182818284 自然底數
math.pi             math.pi  -->  3.141592653 圓周率
math.degrees()      math.degrees(math.pi) --> 180.0 轉弧度轉換爲角度
math.radians(180)   math.radians(180)  -->  3.1415926 角度轉換爲弧度
sin  cos  tan   asin  acos  atan 三角函數與反三角函數(參數必須爲弧度) 
factorial 求階乘: 5! = 1*2*3*4*5 

一個圓的角度爲360度,一個圓的弧度爲2 pi
一般使用程序計算三角函數時要使用弧度
sin   正弦    一個直角三角形中對邊比斜邊(根據弧度求比值)
cos   餘弦    一個直角三角形中鄰邊比斜邊(根據弧度求比值)
tan   正切    一個直角三角形中對邊比鄰邊(根據弧度求比值)
asin  反正弦  根據比值求弧度

時間模塊 time

有三種時間形式 時間戳  字符串  時間元組
常用方法:
    time()              time.time()     獲取時間戳
    localtime()         T = time.localtime()
                        time.localtime(1514166766.0) 當前時間的時間元組根據時間戳產生時間元組
    mktime()            time.mktime(T)   根據時間元組生成時間戳
    sleep()             time.sleep(n) 程序暫停 n 秒
    strptime()          T = time.strptime('2017-11-12','%Y-%m-%d') 將日期變成時間元組 T
    strftime()          time.strftime('%Y-%m-%d',T) 將時間元組變成字符串

例1: 得到當前時間的時間戳及時間元組,得到格林尼治時間
time.time()
time.localtime()
time.gmttime()

例2: 將時間戳1555526007 變成時間元組
import time
tmp = 1555526007
ret = time.localtime(tmp)
print(ret)

例3: 將例2中的時間元組變成時間戳
tmp = 例 2中的元組
ret = time.mktime(tmp)
print(ret)

例4: 將字符串 ‘2018-10-11 12:13:14’ 變成時間戳(無法直接變,可以先變成時間元組)
import time
tmp = ‘2018+10-11 12:13:14’
ret = time.strptime(tmp,’%Y+%m-%d %H:%M:%S’)
ret = time.mktime(ret)
print(ret)

例5: 將時間戳1555526007 變成字符串(無法直接變,可以先變成時間元組)
import time
tmp = 1555526007
tmp = time.localtime(tmp)
ret = time.strftime(’%Y/%m/%d %H:%M’,tmp)
print(ret)
datetime 模塊(django等框架使用)

因爲datetime中有很多子模塊,我們一般使用其中的兩個 from datetime import datetime,timedelta)
datetime對象可以比較大小
可以直接構建datetime對象  datetime(2009,10,11,15,16,20)

例1: 得到當前時間的datetime對象及時間戳
from datetime import datetime

now = datetime.now()
print(now)
ret = now.timestamp()
print(ret)

例2: 將字符串 ‘2018-10-11 12:13:14’ 變成時間戳(無法直接變,可以先變成datetime對象)
from datetime import datetime

tmp = '2018-10-11 12:13:14'
ret = datetime.strptime(tmp,'%Y-%m-%d %H:%M:%S')
ret = ret.timestamp()
print(ret)

例3: 將時間戳 123456789 變成一個字符串
from datetime import datetime

tmp = 123456789
ret = datetime.fromtimestamp(tmp)
ret = ret.strftime('%Y/%m/%d %H:%M:%S')
print(ret)

例: 在原來時間的基礎上增加各減少五天
注意: 也可以直接使用時間戳進行運算
from datetime import datetime,timedelta

now = datetime.now()
delta = timedelta(days=5)

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