最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

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è)置超時時間,是一個浮點數(shù)。指定以秒為單位的超時值。select函數(shù)將會返回一組文件描述符,包括輸入,輸出以及異常。

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

#!/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程序設(shè)計有所幫助。

相關(guān)文章

  • 使用python-pptx操作PPT的示例詳解

    使用python-pptx操作PPT的示例詳解

    python對PPT演示文檔讀寫,是通過第三方庫python-pptx實現(xiàn)的,python-pptx是用于創(chuàng)建和更新?PowerPoint文件的?Python?庫。本文主要介紹了python-pptx操作PPT的相關(guān)示例,希望對大家有所幫助
    2023-01-01
  • Python中列表(List) 的三種遍歷(序號和值)方法小結(jié)

    Python中列表(List) 的三種遍歷(序號和值)方法小結(jié)

    這篇文章主要介紹了Python中列表(List) 的三種遍歷(序號和值)方法小結(jié),具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-05-05
  • Pandas執(zhí)行SQL操作的實現(xiàn)

    Pandas執(zhí)行SQL操作的實現(xiàn)

    使用SQL語句能夠完成對table的增刪改查操作,Pandas同樣也可以實現(xiàn)SQL語句的基本功能,本文就來介紹一下,具有一檔的參考價值,感興趣的可以了解一下
    2024-07-07
  • python中MethodType方法介紹與使用示例

    python中MethodType方法介紹與使用示例

    這篇文章主要給大家介紹了關(guān)于python中MethodType方法的相關(guān)資料,文中通過示例代碼給大家介紹的非常詳細,并給出了詳細的注釋供大家理解學習,需要的朋友可以參考借鑒,下面跟著小編來一起學習學習吧。
    2017-08-08
  • Python 列表(List)的底層實現(xiàn)原理分析

    Python 列表(List)的底層實現(xiàn)原理分析

    這篇文章主要介紹了Python 列表(List)的底層實現(xiàn)原理分析,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2021-03-03
  • Python?async模塊使用方法雜談

    Python?async模塊使用方法雜談

    協(xié)程(Coroutine),也可以被稱為微線程,是一種用戶態(tài)內(nèi)的上下文切換技術(shù)。簡而言之,其實就是通過一個線程實現(xiàn)代碼塊相互切換執(zhí)行
    2023-04-04
  • pytorch查看網(wǎng)絡(luò)參數(shù)顯存占用量等操作

    pytorch查看網(wǎng)絡(luò)參數(shù)顯存占用量等操作

    這篇文章主要介紹了pytorch查看網(wǎng)絡(luò)參數(shù)顯存占用量等操作,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2021-05-05
  • PyQt5之基礎(chǔ)框架解讀

    PyQt5之基礎(chǔ)框架解讀

    這篇文章主要介紹了PyQt5之基礎(chǔ)框架,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2024-02-02
  • 一文詳解pygame.sprite的精靈碰撞

    一文詳解pygame.sprite的精靈碰撞

    精靈其實在一個游戲程序中,精靈本質(zhì)指的是一張張小尺寸的圖片,比如游戲中的各種道具、人物、場景裝飾等,它們都可以看做成一張張小的“精靈”圖,下面這篇文章主要給大家介紹了關(guān)于pygame.sprite精靈碰撞的相關(guān)資料,需要的朋友可以參考下
    2023-01-01
  • 淺談Python中的zip()與*zip()函數(shù)詳解

    淺談Python中的zip()與*zip()函數(shù)詳解

    這篇文章主要介紹了淺談Python中的zip()與*zip()函數(shù)詳解,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2018-02-02

最新評論

马龙县| 微山县| 依兰县| 长兴县| 武城县| 东山县| 焉耆| 中宁县| 玉屏| 贡嘎县| 乌鲁木齐县| 罗平县| 交城县| 富顺县| 忻州市| 广河县| 宝坻区| 南康市| 黑河市| 台安县| 嫩江县| 肃北| 洛扎县| 讷河市| 牙克石市| 江山市| 邵阳县| 手游| 洮南市| 余江县| 三河市| 汶川县| 绵阳市| 宜阳县| 镇江市| 阜城县| 夏河县| 长治县| 盐城市| 北京市| 怀仁县|