python tips(2)

來源:互聯網
上載者:User

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, 人郵, 進階

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.