1. 程式人生 > >復習模塊

復習模塊

shuf 工作 mkt -c width ont ESS 包括 date

一、timedatetime

import time

# 時間戳(timestamp):通常來說,時間戳表示的是從19701100:00:00開始按秒計算的偏移量。

print(time.time()) # 1528188733.8373

# 格式化的時間字符串(Format String)

print(time.strftime("%Y-%m-%d %X")) # 2018-06-05 16:52:13

# 結構化的時間(struct_time)struct_time元組共有9個元素共九個元素:(年,月,日,時,分,秒,一年中第幾周,一年中第幾天,夏令時)

print(time.localtime()) # time.struct_time(tm_year=2018, tm_mon=6, tm_mday=5, tm_hour=16, tm_min=52, tm_sec=13, tm_wday=1, tm_yday=156, tm_isdst=0)

print(time.gmtime()) # time.struct_time(tm_year=2018, tm_mon=6, tm_mday=5, tm_hour=8, tm_min=52, tm_sec=13, tm_wday=1, tm_yday=156, tm_isdst=0)

# 轉換

print(time.localtime(time.time()))

print(time.gmtime(time.time()))

print(time.mktime(time.localtime())) # 1528189230.0

print(time.strftime("%Y-%m-%d %X",time.gmtime())) # 2018-06-05 09:00:30

print(time.strptime(‘2011-05-05 16:37:06‘, ‘%Y-%m-%d %X‘))

# 如果沒有參數,將會將time.localtime()作為參數傳入。

print(time.asctime()) # Tue Jun 5 17:02:46 2018

# 如果參數未給或者為None的時候,將會默認time.time()為參數

print(time.ctime()) # Tue Jun 5 17:03:04 2018

print(time.ctime(time.time())) # Tue Jun 5 17:03:27 2018

time.sleep(2)

import datetime

# 時間加減

print(datetime.datetime.now()) # 2018-06-05 17:08:50.554154

print(datetime.date.fromtimestamp(time.time())) # 2018-06-05

print(datetime.datetime.now()+datetime.timedelta(3)) # 2018-06-08 17:08:50.554274

print(datetime.datetime.now()+datetime.timedelta(-3)) # 2018-06-02 17:08:50.554300

print(datetime.datetime.now() + datetime.timedelta(hours=3)) # 2018-06-05 20:08:50.554319

print(datetime.datetime.now() + datetime.timedelta(minutes=30)) # 2018-06-05 17:38:50.554345

# 時間替換

c_time = datetime.datetime.now()

print(c_time.replace(minute=3,hour=2)) #2018-06-05 02:03:53.562862

. random模塊

import random

print(random.random()) # 0.6314922538999044 大於0且小於1之間的小數

print(random.randint(1,3)) # 3 大於等於1且小於等於3之間的整數

print(random.randrange(1,3)) # 2 大於等於1且小於3之間的整數

print(random.choice([1,‘23‘,[4,5]])) # 1或者23或者[4,5]

print(random.sample([1,‘23‘,[4,5]],2)) # 列表元素任意2個組合

print(random.uniform(1,3)) # 大於1小於3的小數,如1.927109612082716

item=[1,3,5,7,9]

random.shuffle(item) # 打亂item的順序,相當於"洗牌"

print(item) # [3, 5, 1, 7, 9]

# 生成隨機驗證碼

def make_code(n):

res=‘‘

for i in range(n):

s1=chr(random.randint(65,90))

s2=str(random.randint(0,9))

res+=random.choice([s1,s2])

return res

print(make_code(9)) # TXGIS35Q3

. os模塊(os模塊是與操作系統交互的一個接口)

import os

os.getcwd() # 獲取當前工作目錄,即當前python腳本工作的目錄路徑

os.chdir("dirname") # 改變當前腳本工作目錄;相當於shellcd

os.curdir() # 返回當前目錄: (‘.‘)

os.pardir() # 獲取當前目錄的父目錄字符串名:(‘..‘)

os.makedirs(‘dirname1/dirname2‘) # 可生成多層遞歸目錄

os.removedirs(‘dirname1‘) # 若目錄為空,則刪除,並遞歸到上一級目錄,如若也為空,則刪除,依此類推

os.mkdir(‘dirname‘) # 生成單級目錄;相當於shellmkdir dirname

os.rmdir(‘dirname‘) # 刪除單級空目錄,若目錄不為空則無法刪除,報錯;相當於shellrmdir 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() # 輸出用於分割文件路徑的字符串win下為;,Linux下為:

os.name() # 輸出字符串指示當前使用平臺。win->‘nt‘; Linux->‘posix‘

os.system("bash command") # 運行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.path.getsize(path) # 返回path的大小

os.path.normcase(‘c:/windows\\system32\\‘)

.sys模塊

import sys

sys.argv 命令行參數List,第一個元素是程序本身路徑

sys.exit(n) 退出程序,正常退出時exit(0)

sys.version 獲取Python解釋程序的版本信息

sys.maxint 最大的Int

sys.path 返回模塊的搜索路徑,初始化時使用PYTHONPATH環境變量的值

sys.platform 返回操作系統平臺名稱

# 進度條

import sys

import time

def progress(percent,width=50):

if percent>=1:

percent=1

show_str=(‘[%%-%ds}‘ %width)%(int(width*percent)*‘#‘)

print(‘\r%s %d%%‘ % (show_str,int(100*percent)),file=sys.stdout,flush=True,end=‘‘)

data_size=1025

recv_size=0

while recv_size<data_size:

time.sleep(0.1)

recv_size+=100

percent=recv_size/data_size

progress(percent,width=70)

. shutil模塊(高級的 文件、文件夾、壓縮包 處理模塊)

. json & pickle模塊

# 無論數據是怎樣創建的,只要滿足json格式,就可以json.loads出來,不一定非要dumps的數據才能loads

import json

dic={‘name‘:‘alvin‘,‘age‘:23,‘sex‘:‘male‘}

print(type(dic)) # <class ‘dict‘>

j=json.dumps(dic)

print(type(j)) # <class ‘str‘>

f=open(‘序列化對象‘,‘w‘)

f.write(j)

f.close()

import json

f=open(‘序列化對象‘)

data=json.loads(f.read())

import pickle

dic={‘name‘:‘alvin‘,‘age‘:23,‘sex‘:‘male‘}

print(type(dic)) # <class ‘dict‘>

j=pickle.dumps(dic)

print(type(j)) # <class ‘bytes‘>

f=open(‘序列化對象_pickle‘,‘wb‘)

f.write(j)

f.close()

import pickle

f=open(‘序列化對象_pickle‘,‘rb‘)

data=pickle.loads(f.read())

print(data[‘age‘])

. hashlib模塊

import hashlib

m=hashlib.md5()

m.update(‘hello‘.encode(‘utf8‘))

print(m.hexdigest()) # 5d41402abc4b2a76b9719d911017c592

m.update(‘alvin‘.encode(‘utf8‘))

print(m.hexdigest()) # 92a7e713c30abbb0319fa07da2a5c4af

m2=hashlib.md5()

m2.update(‘helloalvin‘.encode(‘utf8‘))

print(m2.hexdigest()) # 92a7e713c30abbb0319fa07da2a5c4af

復習模塊