Time of Update: 2017-01-13
AIML全名為Artificial Intelligence Markup Language(人工智慧標記語言),是一種建立自然語言軟體代理的XML語言,是由RichardS. Wallace 博士和Alicebot開源軟體組織於1995-2000年間發明創造的。AIML是一種為了匹配模式和確定響應而進行規則定義的 XML
Time of Update: 2017-01-13
logging 模組是 python 的一個內建模組,logging 的主要功能在於可以在各個模組之間共用,並且提供了不同的記錄層級,各模組將日誌發送到同一檔案或其他地方,最常見的情形是把資訊記錄在 log 檔案裡。1. logging 的記錄層級```python In [6]: import logging In [7]: logging.NOTSETOut[7]: 0 In [8]: logging.DEBUGOut[8]: 10 In [9]:
Time of Update: 2017-01-13
閉包(closure)是函數式編程的重要的文法結構。閉包也是一種組織代碼的結構,它同樣提高了代碼的可重複使用性。如果在一個內嵌函數裡,對在外部函數內(但不是在全域範圍)的變數進行引用,那麼內嵌函數就被認為是閉包(closure)。定義在外部函數內但由內建函式引用或者使用的變數稱為自由變數。總結一下,建立一個閉包必須滿足以下幾點:1. 必須有一個內嵌函數2. 內嵌函數必須引用外部函數中的變數3.
Time of Update: 2017-01-13
雖然python中由於GIL的機制致使多線程不能利用機器多核的特性,但是多線程對於我們理解並行存取模型以及底層操作非常有用。線程的有兩種使用方法,一種是在函數使用,一種是放在類中使用。1,在函數中使用多線程文法如下: thread.start_new_thread(function, args[, kwargs] )參數說明: function -
Time of Update: 2017-01-13
在寫一功能的時候,本來準備使用webbroswer模組實現,不過發現其只能實現簡單的開啟,而且開啟tab頁面發現並不能實現。所以決能通過selenium模組實現,這裡列下幾個selenium操作不同瀏覽器的定義的函數。一、webbroswer模組該模組的非常簡單,如下:import webbrowserc =
Time of Update: 2017-01-13
在windows下使用python進行圖形類操作時,經常需要用到發送快速鍵的情況,如ALT+TAB、crtl + F1、Fn + f1等之類的操作,利用win32com模組,可以很便利的進行該類操作。如下一個樣本是開啟Outlook程式,擷取第一個元素,並將其內容複寫到粘貼板的樣本:import win32com.clientshell =
Time of Update: 2017-01-13
G20要寫一個輪詢幾個重要頁面的程式,不停的在大屏上進行重新整理,通過pywin32模組下的SetForegroundWindow函數調用時,會出現error: (0, 'SetForegroundWindow', 'No error message is available')報錯,後經網上查詢確認,為pywin32模組下的一個小bug,在該函數調用前,需要先發送一個其他鍵給螢幕,如ALT鍵 。對SetForegroundWindow進行重新封裝以後的結果如下:# Add this
Time of Update: 2017-01-13
這篇總結主要是關於兩方面的需求:其一,在瀏覽器不同tab標籤頁之間按時間切換(同事用來不停重新整理grid crontol 監控頁面);其二,實現開啟多個視窗,並將視窗縮放到一定範圍,並齊佔滿整個案頭,按不同的時間間隔重新整理幾個頁面。一、標籤頁之間切換之前這個通過找了一個瀏覽器外掛程式tab-rotator實現了其需求,並未寫程式實現,後面沒事的時候網上翻selenium資料寫了一個,內容如下:#code by www.111cn.netfrom
Time of Update: 2017-01-13
內建函數sorted()/list.sort()的使用簡單應用python對list有一個內建函數:sorted(),專門用於排序。舉例:>>> a=[5,3,6,1,9,2]>>> sorted(a) #a經過sorted之後,得到一個排序結果[1, 2, 3, 5, 6, 9] #但是,原有的a並沒有受到影響>>> a[5, 3, 6, 1, 9,
Time of Update: 2017-01-13
json越來越流行,通過python擷取到json格式的字串後,可以通過eval函數轉換成dict格式:>>> a='{"name":"yct","age":10}'>>> eval(a){'age': 10, 'name': 'yct'}支援字串和數字,其餘格式的好像不支援:>>>
Time of Update: 2017-01-13
Python基礎注意點字串是以單引號'或雙引號"括起來的任意文本,比如'abc',"xyz"等等。如果'本身也是一個字元,那就可以用""括起來,比如"I'm OK"包含的字元是I,',m,空格,O,K這6個字元如果字串內部既包含'又包含"怎麼辦?可以用逸出字元\來標識,比如:1'I\'m \"OK\"!'表示的字串內容是:1I'm
Time of Update: 2017-01-13
0X00 如何定義一個字串Python 不需要定義其實就是這樣的。。在 Python 中的字串通常這麼寫>>> str1 = 'hello,world'>>> str2 = "It's work">>> str3 = """ Jack:"oh shit" """str1 的聲明方式是最普通的聲明方式str2
Time of Update: 2017-01-13
0X00 列表和元組Python 裡有個東西叫做序列,可以想象成一堆資料。可以簡單的通過序列實現數組、鏈表、棧和隊列等資料結構。序列有幾種,常見的是列表和元組。0X01 序列分區我們可以從序列中截取一部分,這種操作被稱為分區分區的時候我們可以選擇起始點和結束點,還能選擇步長,甚至乃能倒序分區使用:分隔開參數,一般情況下有兩個參數,截取第一個參數到第二個參數,左開右閉如果參數是負數的話,則表示倒數第幾個但是可以接受第三個參數,第三個參數表示步長。如果第二個參數是 2
Time of Update: 2017-01-13
Python 有兩個內建的模組用於處理命令列參數:一個是 getopt,《Deep in python》一書中也有提到,只能簡單處理 命令列參數;另一個是 optparse,它功能強大,而且便於使用,可以方便地產生標準的、符合Unix/Posix 規範的命令列說明。樣本from optparse import OptionParserparser = OptionParser()parser.add_option("-p", "--pdbk",
Time of Update: 2017-01-13
Python中有很多函數式編程的方法,本文介紹的是最常見的幾個函數注:本文基於python2.7.不同的版本可能會導致差異Zip - 集資標準格式zip(seq[, seq[, seq]])舉個栗子:a = (i for i in range(3))b = [4, 5, 6]c = (7, 8, 9)abc = zip(a, b, c)abc的結果為[(0, 4, 7), (1, 5, 8), (2, 6,
Time of Update: 2017-01-13
這幾天收拾的時候發現了Phidget,這還是上一個案子客戶給的。型號是1014_2,記得是當時拿來做壓力測試用的。過太久都忘了怎麼用了,所以再拾遺一下。因為重裝Ubuntu 16.04的系統,所以就從頭裝一遍phidget在Linux平台上的運行環境。可參考Phidget官網,這裡只是大體說一下。Linux環境的搭建安裝libusb的開發庫sudo apt-get install
Time of Update: 2017-01-13
Bokeh 包是一個互動可視化庫。其利用 網頁瀏覽器進行展示,目標是以 D3.js 的風格繪製圖案,這樣圖會看起來很優美,而且很容易構造。Bokeh 支援大量的流式的資料集。你可以用這個庫建立各種圖表/圖形。它的一個主要競爭者可能要屬 Plotly 了。譯註:D3.js 是一個可用於建立“資料驅動文檔”(Data Driven Documents) JavaScript 庫。詳情看這裡注意:這不是一篇關於 Bokeh
Time of Update: 2017-01-13
copy淺拷貝則是產生新指標的同時,也重新開闢一塊記憶體來放與之前一摸一樣的對象實體;deepcopy深拷貝則是會對對象實體進行遞迴開闢實體物件的記憶體空間,也就是一級對象實體中是否有指標指向其他對象。為了讓一個對象發生改變時不對原對象產生副作用,此時,需要一份這個對象的拷貝,python 提供了 copy 機制來完成這樣的任務,對應的模組是 copy。淺拷貝:shadow copy在 copy 模組中,有 copy 函數可以完成淺拷貝。from copy import copy在
Time of Update: 2017-01-13
介紹完電腦時間的背景,下面就要來乾貨了,我把用python擷取系統時間常用的例子匯總了下,方便小夥伴們快速上手和查詢,並且支援日期的常見格式,我們先說如何用time模組來時間我們要的時間:>>> import time>>> time.time()1469101837.655935time.time()函數就是返回的UTC時間,是從1970.1.1到現在的秒數。>>> time.ctime(1469101837.655935)'Thu
Time of Update: 2017-01-13
擷取作業系統的當前運行狀態和負載情況,是一個系統管理員的基本技能,因為這對我們日常排查故障,定位問題有著非常緊密的聯絡,比如查看當前系統的基本資料,例如cpu,記憶體,網路接收包情況,磁碟的使用率等就是我們日常系統管理員經常要關注的內容,既然這些資訊如此重要,那能否每次登陸系統的時候自動給我們展示出來呢,其實解決這個問題很簡單,我們可以寫個指令碼,這個指令碼列印出我們關注的資訊,然後把這個指令碼放到.bashrc裡,這樣每次登陸系統就會自動調用這個指令碼來運行,輸出當前的系統資訊,既然想清楚了,