python_day12_模組、標準庫、常用模組
阿新 • • 發佈:2018-11-17
模組一旦被呼叫,即相當於執行了另外檔案裡的程式碼
模組分為三種:
- 內建標準庫 sys、os help(“modules”)
- 第三方模組、 通過pip install name
- 自定義模組 http://pypi.python.org
- 引用國內豆瓣源 pip install -i http://pypi.douban.com/simple/ name --trusted-host pypi.douban.com
模組的匯入: - from os import rmdir
- from django.core import handlers as rename
- from os import *
新增path 跨模組匯入
- import sys,os
- sys.path.append(os.path.dirname(os.path.abspath(file)))
time 模組
- time.time() 時間戳
- time.localtime() 作業系統時間得到一個時間元組
- time.gmtime() UTC時間
- time.mktime() 將一個時間元組轉為時間戳
- time.sleep(1) 將程式睡眠1s
- time.asctime() 將時間元組表示為“Thu Oct 1 12:23:45”
- time.ctime() 將時間戳表示為“Thu Oct 1 12:23:45”
- time.strftime(’%Y-%m-%d %H:%M:%S %p’, a ) 將時間物件a轉換為指定格式
- time.strptime(b,’%Y-%m-%d %H:%M:%S %p’) 將指定格式的字串轉為時間元組
- 時間物件之間轉換關係
datetime 模組
- datetime.date() 表示日期的類
- datetime.time() 表示時間的類
- datetime.datetime() 表示日期時間
- datetime.timedate() 表示時間間隔,即兩個時間點之間的長度
- datetime.tzinfo() 暫時沒明白。 可以參考python手冊(不常用)
- datetime.datetime.now() 返回一個時間物件
- datetime.date.fromtimestamp(時間戳) 快速得到時間戳的年月日
-
a = datetime.datetime.now()
a.replace(year=2017)
datetime.datetime(2017, 11, 16, 18, 25, 31, 982607)
random 模組
- random.randint(1,100) 1-100 包含100
- random.randrange(1,100) 1-100 不包含100
- random.random() 返回一個隨機數
- random.choice(‘sasdfsdf’) 隨機返回字串內某個字元
- random.sample(“sssssfsdfasdfas”,4) 隨機返回字串內某4個字元
- random.shuffle(a) 隨機排序列表a 的元素
os模組
- os.getcwd() 得到檔案呼叫時的目錄
- os.listdir() 返回指定目錄下的所有檔案和目錄名
- os.remove() 刪除檔案
- os.removedirs() 刪除多個目錄
- os.path.isfile() 判斷給出的路徑是否為一個檔案
- os.path.isdir() 判斷給出的路徑是否為一個目錄
- os.path.isabs() 判斷是否為絕對路徑
- os.path.exists() 檢驗路徑是否真的存在
- os.path.split() 返回路徑的目錄名和檔名
- os.path.splitest() 分離副檔名
- os.path.dirname() 獲取路徑名
- os.path.abspath() 獲取絕對路徑
- os.path.basename() 獲取檔名
- os.system() 執行shell命令
- os.getenv(" HOME") 讀取環境變數HOME的值
- os.environ() 返回作業系統所有的環境變數
- os.environ.setdefault(‘HOMT’,’/home/cobitry’) 設定系統環境變數(僅在本次程式啟動時有效)
- os.linesep 給出當前平臺使用的行終止符、(win: \r\n, linux\unix: \n)
- os.name 給出當前使用的平臺(win:‘nt’ , linux/unix: “posix” )
- os.rename(old,new) 重新命名
- os.makedirs(r"python\test") 建立多級目錄
- os.mkdir(“test”) 建立單個目錄
- os.stat(filename) 獲取檔案屬性
- os.chmod(filename) 修改檔案許可權與時間戳
- os.exit() 終止當前程序
- os.path.getsize(filename) 獲取檔案大小
- os.path.join(dir.filename) 結合目錄名和檔案大小
- os.chdir(dirname) 改變工作目錄到dirname
- os.get_terminal_size() 獲取當前終端視窗大小
- os.kill(pid, signal.SIGKILL) 殺死程序
sys 系統模組
- sys.argv 命令列引數List, 第一個元素是程式本身,其他元素是在執行python時附帶的引數(python3 test.py cobitry hello 其中argv列表第一個元素為test.py第二個為cobitry 第三個為hello)
- sys.exit(n) 退出程式 並列印n
- sys.version 列印py的版本
- sys.maxsize 在python3中列印int的最大值, python2中為sys.maxint
- sys.platform 列印當前系統版本
- sys.stdout 返回結果(<_io.TextIOWrapper name=’’ mode=‘w’ encoding=‘UTF-8’>) 提供各種方法。 sys.stdout.write :在當前螢幕輸出 sys.stdout.read() 【readline 等各種方法】
- sys.getrecursionlimit() 改變最大遞迴層數
- sys.getdefaultencoding() 獲取直譯器預設編碼
- sys.getfilesystemencoding 獲取記憶體資料存到檔案裡的預設編碼
shtull 檔案操作模組
- 參考大佬http://www.cnblogs.com/wupeiqi/articles/4963027.html
- shtull.copyfileobj(fsrc,fdst[,length]) 開啟檔案 拷貝檔案
- shtull.copyfile(src,dst) 拷貝檔案、不用開啟檔案(在原始碼中開啟)
- shtull.copymode(src,dst) 拷貝許可權,但是內容、組、使用者不變
- shtull.copystat(src,dst) 拷貝 mode atime mtime bits flags
- shtull.copy(src,dst) 拷貝檔案和許可權
- shtull.copy2(src,dst) 拷貝檔案和狀態資訊
- shutil.ignore_patterns(patterns)
shutil.copytree(src, dst, symlinks=False, ignore=None)
遞迴的去拷貝檔案 例如:copytree(source, destination, ignore=ignore_patterns(’.pyc’, ‘tmp*’)) 拷貝包。 ignore_patterns 可以設定忽略某些檔案 - shutil.rmtree(src, dst,symlinks=False,ignore=None) 遞迴刪除檔案 ignore 可設定忽略某些檔案
- shutil.move() 移動檔案、(相當於剪下)
- shutil.make_archive(base_name,format,…)
base_name: 壓縮完成後儲存的位置
format: 壓縮包的種類 “zip”“tar”“bztar”“gztar”
root_dir: 要壓縮的資料夾路徑(預設當前目錄)
owner: 使用者,預設當前使用者
group: 組,預設當前組
logger: 用於記錄日誌,通常是logging.Logger物件