欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Python通過select實現(xiàn)異步IO的方法

 更新時間:2015年06月04日 10:20:10   作者:raygtr  
這篇文章主要介紹了Python通過select實現(xiàn)異步IO的方法,實例分析了Python中select模塊的使用技巧,需要的朋友可以參考下

本文實例講述了Python通過select實現(xiàn)異步IO的方法。分享給大家供大家參考。具體如下:

在Python中使用select與poll比起在C中使用簡單得多。select函數(shù)的參數(shù)是3個列表,包含整數(shù)文件描述符,或者帶有可返回文件描述符的fileno()方法對象。第一個參數(shù)是需要等待輸入的對象,第二個指定等待輸出的對象,第三個參數(shù)指定異常情況的對象。第四個參數(shù)則為設置超時時間,是一個浮點數(shù)。指定以秒為單位的超時值。select函數(shù)將會返回一組文件描述符,包括輸入,輸出以及異常。

在linux下利用select實現(xiàn)多路IO的文件復制程序:

#!/usr/bin/env python
import select
#導入select模塊
BLKSIZE=8192
def readwrite(fromfd,tofd):
  readbuf = fromfd.read(BLKSIZE)
  if readbuf:
    tofd.write(readbuf)
    tofd.flush()
  return len(readbuf)
def copy2file(fromfd1,tofd1,fromfd2,tofd2):
    ''' using select to choice fds'''
  totalbytes=0
    if not (fromfd1 or fromfd2 or tofd1 or tofd2) :
 #檢查所有文件描述符是否合法
        return 0
  while True:
 #開始利用select對輸入所有輸入的文件描述符進行監(jiān)視
    rs,ws,es = select.select([fromfd1,fromfd2],[],[])
    for r in rs:
      if r is fromfd1:
 #當?shù)谝粋€文件描述符可讀時,讀入數(shù)據(jù)
        bytesread = readwrite(fromfd1,tofd1)      
        totalbytes += bytesread
      if r is fromfd2:
        bytesread = readwrite(fromfd2,tofd2)
        totalbytes += bytesread
    if (bytesread <= 0):
      break
  return totalbytes
def main():
  fromfd1 = open("/etc/fstab","r")
  fromfd2 = open("/etc/passwd","r")
  tofd1 = open("/root/fstab","w+")
  tofd2 = open("/root/passwd","w+")
  totalbytes = copy2file(fromfd1,tofd1,fromfd2,tofd2)
  print "Number of bytes copied %d\n" % totalbytes
  return 0
if __name__=="__main__":
  main()

希望本文所述對大家的Python程序設計有所幫助。

相關文章

  • 使用Python+OpenCV進行卡類型及16位卡號數(shù)字的OCR功能

    使用Python+OpenCV進行卡類型及16位卡號數(shù)字的OCR功能

    本文將使用Python+OpenCV實現(xiàn)模板匹配算法,以自動識別卡的類型和以及16位卡號數(shù)字,通過實例代碼給大家介紹的非常詳細,需要的朋友參考下吧
    2021-08-08
  • jenkins+python自動化測試持續(xù)集成教程

    jenkins+python自動化測試持續(xù)集成教程

    這篇文章主要介紹了jenkins+python自動化測試持續(xù)集成教程,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-05-05
  • 在Python中處理XML的教程

    在Python中處理XML的教程

    這篇文章主要介紹了在Python中處理XML的教程,是Python網(wǎng)絡編程中的基礎知識,需要的朋友可以參考下
    2015-04-04
  • 深入理解Python中的內(nèi)置常量

    深入理解Python中的內(nèi)置常量

    這篇文章主要跟大家介紹了關于Python中內(nèi)置常量的相關資料,文中介紹的非常詳細,對大家具有一定的參考學習價值,需要的朋友們下面來一起看吧。
    2017-05-05
  • Django的多表查詢操作實戰(zhàn)

    Django的多表查詢操作實戰(zhàn)

    Django提供一種強大而又直觀的方式來"處理"查詢中的關聯(lián)關系,它在后臺自動幫你處理JOIN,下面這篇文章主要給大家介紹了關于Django多表查詢操作的相關資料,文中通過實例代碼介紹的非常詳細,需要的朋友可以參考下
    2023-06-06
  • python如何壓縮新文件到已有ZIP文件

    python如何壓縮新文件到已有ZIP文件

    這篇文章主要為大家詳細介紹了python如何壓縮新文件到已有ZIP文件,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2018-03-03
  • 一個入門級python爬蟲教程詳解

    一個入門級python爬蟲教程詳解

    這篇文章主要介紹了一個入門級python爬蟲教程詳解,本文給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2021-01-01
  • Python應用開發(fā)之實現(xiàn)串口通信

    Python應用開發(fā)之實現(xiàn)串口通信

    在嵌入式開發(fā)中我們經(jīng)常會用到串口,串口通信簡單,使用起來方便,且適用場景多。本文為大家準備了Python實現(xiàn)串口通信的示例代碼,需要的可以參考一下
    2022-11-11
  • 詳解Python中的元組與邏輯運算符

    詳解Python中的元組與邏輯運算符

    這篇文章主要介紹了Python中的元組與邏輯運算符的用法,是Python入門學習中的基礎知識,需要的朋友可以參考下
    2015-10-10
  • 一文帶你了解Python中的雙下方法

    一文帶你了解Python中的雙下方法

    Python中有一些特殊方法的方法名都是以雙下劃線開始和結(jié)束,所以又被稱為雙下方法。本文就來為大家詳細講講Python中的雙下方法的使用,感興趣的可以了解一下
    2022-07-07

最新評論