(Tensorflow之二十一)python常用庫檔案
阿新 • • 發佈:2018-12-30
1、import numpy as np
numpy無需多說,應該是運用最多的了。在大陣的矩陣運算中優勢十分明顯;
2、import tensorflow as tf
Google 開發的第二代人工智慧學習系統,搞AI的應該第一行程式碼就是這個了;
3、import os.path
os.path模組主要用於檔案的屬性獲取。
例:
3.1 os.path.dirname(path) 返回路徑
>>> os.path.dirname('home\abiggg\hello.py')
'home\abiggg\'
3.2 os.path.basename(path)返回檔名
>>> os.path.dirname('home\abiggg\hello.py')
'hello.py'
3.3 os.path.isfile(‘home\abiggg\hello.py’) 判斷該路徑下的文 件是否存在
True
3.4 os.path.join(path1[, path2[, …]]) 將多路徑組合
>>>os.path.join(\home, \abig,\hello.py)
\home\abiggg\hello.py
4、import sys
4.1 sys.path 根據sys.path的路徑來搜尋module.name
Sys.path.append(“\home\abiggg\hello.py”).
將自已寫的文 件加入庫檔案的搜尋路徑,從而可以用import hello.py 來呼叫庫
4.2 sys.exit(n)中途退出
但是如果需要中途退出程式, 你可以呼叫sys.exit 函式, 它帶有一個可選的整數引數返回給呼叫它的程式. 這意味著你可以在主程式中捕獲對sys.exit 的呼叫
4.3 sys.argv[number]將外部引數傳入程式中
例:Test.py中的程式碼如下
import sys
print sys.argv[0]
print sys.argv[1]
呼叫時
>>>test.py test_2
則列印
test.py
test_2
5、import datetime
處理日期和時間的標準庫
5.1 datetime.now()
>>> now = datetime.now()
>>> print now
2017-11-10 00:04:49.656000
5.2 timedelta(days、hours、seconds、microseconds)
>>> print now
2017-11-10 00:04:49.656000
>>> now += timedelta(hours=10)
>>> print now
2017-11-10 10:04:49.656000
6、import random
返回隨機生成的一個實數,它在[0,1)範圍內;
# 生成第一個隨機數
print "random() : ", random.random()
# 生成第二個隨機數
print "random() : ", random.random()
列印結果
random() : 0.281954791393
random() : 0.309090465205
7、import tarfile
用於壓縮與解壓
7.1 解壓
import tarfile
tar = tarfile.open("sample.tar.gz")
tar.extractall()
tar.close()
7.2 壓縮
#建立壓縮包名
tar = tarfile.open("/tmp/tartest.tar.gz","w:gz")
#建立壓縮包
for root,dir,files in os.walk("/tmp/tartest"):
for file in files:
fullpath = os.path.join(root,file)
tar.add(fullpath)
tar.close()
8、import logging
主要用於輸出執行日誌,可以設定輸出日誌的等級、日誌儲存路徑、日誌檔案回滾等;
import logging
logging.basicConfig(level = logging.INFO,format = '%(asctime)s - %(name)s - %(levelname)s - %(message)s')
logger = logging.getLogger(__name__)
logger.info("Start print log")
logger.debug("Do something")
logger.warning("Something maybe fail.")
logger.info("Finish")
9、import hashlib
加密模組。
hash = hashlib.md5()#md5物件,md5不能反解,但是加密是固定的,就是關係是一一對應,所以有缺陷,可以被對撞出來
hash.update(bytes('admin',encoding='utf-8'))#要對哪個字串進行加密,就放這裡
print(hash.hexdigest())#拿到加密字串
# hash2=hashlib.sha384()#不同演算法,hashlib很多加密演算法
# hash2.update(bytes('admin',encoding='utf-8'))
# print(hash.hexdigest())
hash3 = hashlib.md5(bytes('abd',encoding='utf-8'))
''' 如果沒有引數,所以md5遵守一個規則,生成同一個對應關係,如果加了引數,
就是在原先加密的基礎上再加密一層,這樣的話引數只有自己知道,防止被撞庫,
因為別人永遠拿不到這個引數
'''
hash3.update(bytes('admin',encoding='utf-8'))
print(hash3.hexdigest())
10、import re
正則匹配。
#!python
>>> p = re.compile('(a(b)c)d')
>>> m = p.match('abcd')
>>> m.group(0)
'abcd'
>>> m.group(1)
'abc'
>>> m.group(2)
'b'
11、import struct
結構體物件,通常的打包和解包
"""
打包和解包
"""
import struct
import binascii
values = (1, b'good', 1.22) #檢視格式化對照表可知,字串必須為位元組流型別。
s = struct.Struct('I4sf')
packed_data = s.pack(*values)
unpacked_data = s.unpack(packed_data)
print('Original values:', values)
print('Format string :', s.format)
print('Uses :', s.size, 'bytes')
print('Packed Value :', binascii.hexlify(packed_data))
print('Unpacked Type :', type(unpacked_data), ' Value:', unpacked_data)
結果
Original values: (1, b'good', 1.22)
Format string : b'I4sf'
Uses : 12 bytes
Packed Value : b'01000000676f6f64f6289c3f'
Unpacked Type : <class 'tuple'> Value: (1, b'good', 1.2200000286102295)
[Finished in 0.1s]