python之前簡單了解過尤筐,但基本上沒有學(xué)習(xí)過鸟悴。
最近總有一些重復(fù)的事情幅虑,所以希望學(xué)習(xí)一下是否可以提高效率
1.基礎(chǔ)
語言學(xué)習(xí)總離不開語法和撰寫規(guī)范。下面是我找到的資料盒刚,沒有花很大力氣腺劣,所以不敢確定是否是最好的,不過對目前我的目的差不多夠了因块。
基本知識(shí):http://www.runoob.com/python3/python3-tutorial.html
命名規(guī)范:https://www.cnblogs.com/wangcp-2014/p/4608265.html
2.實(shí)踐
看完前面的東西也用不了多長時(shí)間橘原,然后就躍躍欲試了。當(dāng)前使用的場景主要是log的分析(因?yàn)槊鎸Φ氖怯脩魣?bào)障涡上,所以有大量的log分析)趾断,所以就直接上手了。開始寫的時(shí)候還是很生的(畢竟剛學(xué)的)吩愧,所以經(jīng)常要回去翻一些語法的細(xì)節(jié)芋酌。不過還好,差不多多半天的時(shí)間語法就差不多夠用了雁佳。然后專心于功能邏輯的設(shè)計(jì)脐帝。
我寫的功能相對比較明確,主要如下:
1.讀取一個(gè)文件目錄或文件(主要是os, os.path)
2.解壓壓縮文件(我是用的是winrar糖权,會(huì)有窗口彈出堵腹,rar命令行工具處理格式較少,沒法滿足要求)
3.讀取每一個(gè)文件星澳,解析其中的關(guān)鍵log(主要是file操作和文本操作)
4.根據(jù)業(yè)務(wù)邏輯分析關(guān)鍵log(文本處理疚顷,業(yè)務(wù)邏輯解析,開始用的是str的各種操作禁偎,后來改成了正則模塊腿堤,re)
5.打印已確信的問題,并打印無法確認(rèn)的届垫,還需要人為分析的關(guān)鍵log信息(格式控制)
參考資料如下:
解壓:https://www.cnblogs.com/anpengapple/p/6140213.html
https://blog.csdn.net/T1243_3/article/details/80170006
https://blog.csdn.net/liudongdong19/article/details/79579770
http://www.runoob.com/python3/python3-reg-expressions.html
曾遇到的困擾的地方:
1.類成員和實(shí)例成員的寫法和java或c++差異很大
2.無類型導(dǎo)致編寫提示無效
3.優(yōu)化
主要是兩部分吧释液,
1性能優(yōu)化,如何檢測性能装处,并針對性能低下的部分進(jìn)行改寫误债。
https://blog.csdn.net/asukasmallriver/article/details/74356771
https://github.com/happyshdq/flashtext
2.設(shè)計(jì)優(yōu)化。這個(gè)怎么說呢妄迁,有一些語言特性寝蹈,更多的是一些通用的東西。
這里主要做的是:在實(shí)現(xiàn)功能的基礎(chǔ)上登淘,建立了一些清晰的概念模型箫老,然后定義了一個(gè)控制流程,然后把后續(xù)的可能擴(kuò)展點(diǎn)做了處理:可以后續(xù)在此概念模型下黔州,盡量不修改現(xiàn)有代碼文件的情況下擴(kuò)展新的功能(主要是分析新問題的log)
關(guān)鍵概念:
sniffer:識(shí)別問題類型
parser:分析問題耍鬓,并輸出問題關(guān)鍵信息
flowmanager:控制整體流程
context:上下文及相關(guān)小概念
config:配置文件
此外阔籽,形成了兩個(gè)通用模塊:
fileexplorer:文件處理
log:基本的、業(yè)務(wù)無關(guān)的log解析
4.后記
整體感覺python還是比較好用的牲蜀,最重要的是感覺輕量笆制。腳本語言嘛,隨寫隨用涣达,對于一些分析工作來說在辆,完全沒有什么編譯部署運(yùn)行的感覺。
語言難度應(yīng)該還好度苔。也許受java/C++這些語言的影響匆篓,在用python時(shí)非強(qiáng)類型確實(shí)有些使用細(xì)節(jié)上的困擾,比如IDE的編碼提示(我用的pycharm)寇窑。