download:协程原理从入门到精通 每个后端开发都需要掌握的高性能开发技术 【完结】
协程知识在很多课程中都有提到,但都是浅尝即止,均不深入。本课程作为市面上首门协程专题课程,将从基础讲起,与应用原理联动起来,深入协程原理更易于理解,结合丰富的课程案例,并使用Python语言进行落地实践。但一法通则万法通,不管你是Java、Go还是PHP开发,都可以通过本门课程掌握协程原理。对于初中级开发而言,是一门非常适合起手学习高性能开发的课程。
**
适合人群
**
希望掌握进程、线程、协程底层原理的同学
想突破业务瓶颈,提高项目并发能力的工程师
面试一问就懵,想系统梳理下协程知识的同学
**
技术储备要求
**
具备Python语法基础
有后端项目经验
coding=UTF-8
XingHe Studio File to MD5 and SHA1
銀河創作室(XingHeStudio.com)
Create by Stream.Wang 2012-04-10
Modify by Stream.Wang 2012-04-10
def fil_changefileext(filename,extname``=``''):
FIL ChangeFileExt 改動文件擴展名
filename 輸入的文件途径名
extname='' 要更改分擴展名,如 .txt
import os
try``:
if extname[``0``]<>``'.'``:
extname``=``'.'``+``extname
except``:
extname``=``''
if os.path.splitext(filename)[``1``]``=``=``'':
uouttxt``=``filename``+``'.'``+``extname
elif os.path.splitext(filename)[``1``]``=``=``'.'``:
uouttxt``=``filename``+``extname
else``:
uouttxt``=``filename[:``0``-``len(os.path.splitext(filename)[``1``])]``+``extname
return uouttxt
def fil_str2file(fstr,filename):
# FIL STR2File 把字符串保管到文件
try``:
outfile``=``open(filename,``'w'``)
outfile.writelines(fstr)
outfile.close()
return True
except``:
return False
係統主程序開端
------------------------------------------------------
if __name__ =``= '__main__'``:
import os,sys,math
if len(sys.argv)==1:sys.argv.append(r'c:\FreeNAS-8.0.4-RELEASE-x64.iso')
if len(sys.argv)>``1``:
filepathname``=``sys.argv[``1``]
if os.path.isfile(filepathname) :
fmaxs = os.path.getsize(filepathname)``+``0.00
fpos = 0.00
ppos``=``0
pmax``=``50
pjy``=``0
fmd5``=``fil_changefileext(filepathname,``'.md5'``)
fsha1``=``fil_changefileext(filepathname,``'.sha'``)
ffm``=``os.path.basename(filepathname)
開端處置
print 'Program Runing "'``+``filepathname``+``'" ...'
import hashlib
try``:
umd5str = hashlib.md5()
usha1str = hashlib.sha1()
xfilepathname``=``unicode(filepathname,``'utf8'``)
需求運用二進製格式讀取文件内容
ufile = file(xfilepathname,``'rb'``)
while True``:
datas = ufile.read(``1024``*``512``)
if not datas: break
umd5str.update( datas )
usha1str.update( datas )
fpos``=``fpos``+``1024``*``512
ppos``=``int(math.floor(fpos / fmaxs * 50``))
pposbfh``=``int(math.floor(fpos / fmaxs * 100``))
打印進度條
if pjy<>ppos: print '['``+``'*'``*``ppos +``'='``*``(pmax``-``ppos)``+``'] '``+``str(pposbfh) +``'%'
打印進度問題未處理,不晓得print函數怎樣退回到行首掩蓋輸出,不換行我倒是晓得,加個“,”
pjy``=``ppos
uoutstrmd5``=``str(umd5str.hexdigest())
uoutstrsha1``=``str(usha1str.hexdigest())
ufile.close()
print ''
fil_str2file(uoutstrmd5``+``' *'``+``ffm``+``'\n'``,fmd5)
fil_str2file(uoutstrsha1``+``' *'``+``ffm``+``'\n'``,fsha1)
print 'Task is completed !' + r``' [ XingHe Studio File to MD5 and SHA1 ]'
except``:
print 'Error !' + r``' [ XingHe Studio File to MD5 and SHA1 ]'
else``:
print 'File "'``+``filepathname``+``'" not exist!'``+ r``' [ XingHe Studio File to MD5 and SHA1 ]'
else``:
print r``' [ XingHe Studio File to MD5 and SHA1 ]'