1.內置函數
Python所有的內置函數
| 置方法 | 說明 |
| __init__(self,...) | 初始化對象,在創建新對象時調用 |
| __del__(self) | 釋放對象,在對象被刪除之前調用 |
| __new__(cls,*args,**kwd) | 實例的生成操作 |
| __str__(self) | 在使用print語句時被調用 |
| __getitem__(self,key) | 獲取序列的索引key對應的值,等價於seq[key] |
| __len__(self) | 在調用內聯函數len()時被調用 |
| __cmp__(stc,dst) | 比較兩個對象src和dst |
| __getattr__(s,name) | 獲取屬性的值 |
| __setattr__(s,name,value) | 設置屬性的值 |
| __delattr__(s,name) | 刪除name屬性 |
| __getattribute__() | __getattribute__()功能與__getattr__()類似 |
| __gt__(self,other) | 判斷self對象是否大於other對象 |
| __lt__(slef,other) | 判斷self對象是否小於other對象 |
| __ge__(slef,other) | 判斷self對象是否大於或者等於other對象 |
| __le__(slef,other) | 判斷self對象是否小於或者等於other對象 |
| __eq__(slef,other) | 判斷self對象是否等於other對象 |
| __call__(self,*args) | 把實例對象作為函數調用 |
2.內置變量
vars()查看內置全局變量
以字典方式返回內置全局變量
- #!/usr/bin/env python
- # -*- coding:utf8 -*-
- print(vars())
- #輸出
- # {'__builtins__': <module 'builtins' (built-in)>, '__spec__': None, '__package__': None, '__doc__': None, '__name__': '__main__', '__cached__': None, '__file__': 'H:/py/index.py', '__loader__': <_frozen_importlib_external.SourceFileLoader object at 0x000000AC32C66A58>}
__file__ 【重點】獲取當前文件的路徑
__file__ ,一般配合os模塊的os.path.dirname(),os.path.basename() ,os.path.join() 模塊函數來使用
- #!/usr/bin/env python
- # -*- coding:utf8 -*-
- import os
- a = __file__ # __file__全局變量獲取當前文件路徑
- print(a)
- b = os.path.dirname(a) #獲取文件當前目錄:注意:os.path.dirname()疊加一次向上找一次 如下
- print(b)
- b2 = os.path.dirname(b) #獲取文件當前目錄的上級目錄,注意:os.path.dirname()疊加一次向上找一次
- print(b2)
- c = os.path.basename(a) #獲取文件名稱
- print(c)
- #輸出
- # H:/py/lib/ska/mk.py
- # H:/py/lib/ska
- # H:/py/lib
- # mk.py
- #!/usr/bin/env python
- # -*- coding:utf8 -*-
- import sys
- import os
- a = __file__ # __file__全局變量獲取當前文件路徑
- print(a)
- b = os.path.dirname(a) #獲取文件當前目錄
- print(b)
- c = "lib" #自定義文件目錄名稱
- d = os.path.join(b,c) #將獲取文件當前目錄,與自定義文件目錄名稱,拼接成完整的路徑
- print(d)
- print("\n")
- sys.path.append(d) #將拼接好的路徑,添加到解釋器模塊路徑中
- for i in sys.path: #
- print(i)
- #輸出
- # H:/py/index.py
- # H:/py
- # H:/py\lib
- #
- #
- # H:\py
- # C:\Users\admin\AppData\Local\Programs\Python\Python35\lib\site-packages\pip-8.1.2-py3.5.egg
- # H:\py
- # C:\Users\admin\AppData\Local\Programs\Python\Python35\python35.zip
- # C:\Users\admin\AppData\Local\Programs\Python\Python35\DLLs
- # C:\Users\admin\AppData\Local\Programs\Python\Python35\lib
- # C:\Users\admin\AppData\Local\Programs\Python\Python35
- # C:\Users\admin\AppData\Local\Programs\Python\Python35\lib\site-packages
- # H:/py\lib
__cached__ :獲取導入文件的緩存路徑
__name__ 【重點】獲取導入文件的路徑加文件名稱,路徑以點分割,注意:獲取當前文件返回__main__
__name__ 全局變量寫在入口文件里,只有執行入口文件時的返回值才是__main__ ,如果入口文件被導入到別的文件里,此時入口文件的__name__返回值就不在是__main__,而是如果文件的路徑加入口文件名稱,所以我們可以用__name__全局變量來防止別人盜鏈入口文件
__builtins__ 【重點】內置函數在這里面
3.內置模塊
一:os模塊,(文件和目錄)用於提供系統級別的操作
二:sys模塊:用於提供對解釋器相關的操作
三:hashlib模塊:用於加密相關的操作,代替了md5模塊和sha模塊,主要提供 SHA1, SHA224, SHA256, SHA384, SHA512 ,MD5 算法
四:shutil模塊:高級的 文件、文件夾、壓縮包 處理模塊(遞歸,文件復制等)
五:configparser模塊:用於對特定的配置進行操作,
六:logging: 用於便捷記錄日志且線程安全的模塊
七:time & datetime 模塊:時間相關的操作,時間有三種表示方式:
八:random模塊:隨機數
九:json 和 pickle模塊
十:shelve模塊:一個簡單的k,v將內存數據通過文件持久化的模塊,可以持久化任何pickle可支持的python數據格式
- os.getcwd() 獲取當前工作目錄,即當前Python腳本工作的目錄路徑
- os.chdir("dirname") 改變當前腳本工作目錄;相當於shell下cd
- os.curdir 返回當前目錄: ('.')
- os.pardir 獲取當前目錄的父目錄字符串名:('..')
- os.makedirs('dirname1/dirname2') 可生成多層遞歸目錄
- os.removedirs('dirname1') 若目錄為空,則刪除,並遞歸到上一級目錄,如若也為空,則刪除,依此類推
- os.mkdir('dirname') 生成單級目錄;相當於shell中mkdir dirname
- os.rmdir('dirname') 刪除單級空目錄,若目錄不為空則無法刪除,報錯;相當於shell中rmdir dirname
- os.listdir('dirname') 列出指定目錄下的所有文件和子目錄,包括隱藏文件,並以列表方式打印
- os.remove() 刪除一個文件
- os.rename("oldname","newname") 重命名文件/目錄
- os.stat('path/filename') 獲取文件/目錄信息
- os.sep 輸出操作系統特定的路徑分隔符,win下為"\\",Linux下為"/"
- os.linesep 輸出當前平台使用的行終止符,win下為"\t\n",Linux下為"\n"
- os.pathsep 輸出用於分割文件路徑的字符串
- os.name 輸出字符串指示當前使用平台。win->'nt'; Linux->'posix'
- os.system("bashcommand") 運行shell命令,直接顯示
- os.environ 獲取系統環境變量
- os.path.abspath(path) 返回path規范化的絕對路徑
- os.path.split(path) 將path分割成目錄和文件名二元組返回
- os.path.dirname(path) 返回path的目錄。其實就是os.path.split(path)的第一個元素
- os.path.basename(path) 返回path最后的文件名。如何path以/或\結尾,那么就會返回空值。即os.path.split(path)的第二個元素
- os.path.exists(path) 如果path存在,返回True;如果path不存在,返回False
- os.path.isabs(path) 如果path是絕對路徑,返回True
- os.path.isfile(path) 如果path是一個存在的文件,返回True。否則返回False
- os.path.isdir(path) 如果path是一個存在的目錄,則返回True。否則返回False
- os.path.join(path1[, path2[,...]]) 將多個路徑組合后返回,第一個絕對路徑之前的參數將被忽略
- os.path.getatime(path) 返回path所指向的文件或者目錄的最后存取時間
- os.path.getmtime(path) 返回path所指向的文件或者目錄的最后修改時間
- 執行系統命令
- os.system
- sys.argv 命令行參數List,第一個元素是程序本身路徑
- sys.exit(n) 退出程序,正常退出時exit(0)
- sys.version 獲取Python解釋程序的版本信息
- sys.maxint 最大的Int值
- sys.path 返回模塊的搜索路徑,初始化時使用PYTHONPATH環境變量的值
- sys.platform 返回操作系統平台名稱
- #hashlib
- hash = hashlib.md5()
- hash.update(b'admin')
- print(hash.hexdigest())
- print(time.time()) #返回當前系統時間戳
- print(time.ctime()) #輸出Tue Jan 26 18:23:48 2016 ,當前系統時間
- print(time.strftime("%Y-%m-%d %H:%M:%S",time.gmtime()) ) #將struct_time格式轉成指定的字符串格式
- print(time.strptime("2016-01-28","%Y-%m-%d") ) #將字符串格式轉換成struct_time格式
- current_time = datetime.datetime.now() #
- print(current_time) #輸出2016-01-26 19:04:30.335935
- print(current_time.timetuple()) #返回struct_time格式
- str_to_date = datetime.datetime.strptime("21/11/06 16:30", "%d/%m/%y %H:%M") #將字符串轉換成日期格式
- new_date = datetime.datetime.now() + datetime.timedelta(days=10) #比現在加10天
