1. python Popen的具體解釋是:開啟一個命令或從管道傳回值。
從python2.4開始,就可以用subprocess這個模組來產生子進程,並串連到子進程的標準輸入/輸出/錯誤中去,還可以得到子進程的傳回值,subprocess意在替代其它幾個老的模組或函數。如,os.system, os.spawn*, os.popen*, popen2.*, commands.*
下面是使用subprocess的例子。
import win32com.clientfrom subprocess import Popenimport timeshell = win32com.client.Dispatch("WScript.Shell")shell.Run("notepad")time.sleep(5)Popen("taskkill /f /im notepad.exe")Popen("calc")time.sleep(5)Popen("taskkill /f /im calc.exe")
2. python建立進程用os.fork函數,但它只在POSIX系統上可用,在Windows版的python中,os模組沒有定義os.fork函數,相反,Windows程式員用多線程編程技術(multiprocessing)來完成並發任務。
關於python fork:
1)建立管道 2)建立子進程
子進程:
1)需要關閉管道讀端 2)開始執行 3)向寫端寫結果 4)進程死亡
父進程:
1)關閉管道寫端 2)從讀端讀取資料直到子進程死亡或者關閉 3)調用waitpid方法確保子進程已經被撤銷(在FreeBSD中不這麼做子進程永遠不會死亡) 4)進程輸出
3. map, reduce, filter的使用例子。
def map_func(lis): return lis + 1def reduce_func(li, lis): return li + lisdef filter_func(lis): if lis % 2 == 0: return True else: return Falselis = [1, 2, 3, 4, 5]map_I = map(map_func, lis)reduce_I = reduce(reduce_func, lis)filter_I = filter(filter_func, lis)print map_Iprint reduce_Iprint filter_I
輸出結果為:
>>> [2, 3, 4, 5, 6]15[2, 4]>>>
4. python 冒泡排序的兩種方法。
方法一:
array = [1, 2, 5, 3, 6, 8, 4]for i in range(len(array) - 1, 1, -1): #print i for j in range(0, i): #print j if array[j] > array[j + 1]: array[j], array[j + 1] = array[j + 1], array[j]print array
方法二:
array1 = [1, 2, 5, 3, 6, 8, 4]array1.sort(cmp = None, key = None, reverse = False)print array1
結果如下:
>>> [1, 2, 3, 4, 5, 6, 8][1, 2, 3, 4, 5, 6, 8]>>>
5. 巧用python輸出。
array = [1, 2, 5, 3, 6, 8, 4]# (0, 1, 2, 3, 4, 5, 6)# (-7,-6,-5,-4,-3,-2,-1)print array[::2]print array[2::]print array[::-1]print array[0:]print array[:-1]print array[3:-3]
結果如下:
>>> [1, 5, 6, 4][5, 3, 6, 8, 4][4, 8, 6, 3, 5, 2, 1][1, 2, 5, 3, 6, 8, 4][1, 2, 5, 3, 6, 8][3]>>>
6. python的函數可以返回多個值,例子如下。
def test(num = 0): return(num, num + 1)def hello(num = 0): if num == 0: pass else: return num + 2num1, num2 = test(1)num4 = hello(1)num3 = hello(0)print num1, num2print num3, num4
結果如下:
>>> 1 2None 3>>>
7. python遍曆字典元素時字典元素的順序通常沒有定義,換句話說,迭代的時候,字典中的鍵和值都保證被處理,但是處理順序不確定,如果順序很重要的話,可以將索引值儲存在單獨的列表中,例如迭代前進行排序。
8. cmd命令"netsh wlan export profile"可以讓使用者將一個在Windows圖形化使用者介面中建立的無線設定檔匯出到一個XML檔案中,如此,便可將其匯入到其它電腦中或進行備份。
附:推薦幾本學習Python的書籍,也供備查。
1. Learning Python, O'Reilly, Introduction
2. Pratical Python, APress, 部分公用程式
3. Python Standard Library, Fredrik Lundh, 模組執行個體
4. Python Cookbook, (第2版)中文版, O'Reilly, 人郵, 進階