异步文件处理模块。

asyncfile的Python项目详细描述


一个简单且最新的模块,支持与Python中的asyncio和fileIO操作兼容。在

目的

在Python中对文件进行操作是一项同步活动。在文件上正常操作时,不会出现这种情况 造成任何问题。但是,当文件在同时运行asyncio事件的代码中被篡改时 循环,这会导致asyncioevent loop阻塞。这会对程序的性能产生负面影响 因此应该避免。asyncfile模块通过在单独的 线程以使事件循环不会受到如此严重的影响。在

特点

  • ^使用{em1}$async和await语法
  • 几乎完全覆盖了io模块的类
  • 语法和实用程序类似于内置的Python open函数和内置的io模块
  • 轻量级的速度和内存

安装

安装asyncfile应通过PIP完成:

pip install asyncfile

开放式示例

如果要使用常规的块代码,可以轻松地将其转换为asyncfile

阻塞:

^{pr2}$

非阻塞:

importasyncfileimportasynciocustom_loop=asyncio.get_event_loop()# You can pass in your own loopasyncdefopen_file():asyncwithasyncfile.open('fake_file','r',loop=custom_loop)asf:print(awaitf.read())custom_loop.run_until_complete(open_file())

这两种方法都会产生相同的结果,但其中一种更适合于基于异步的代码。在

IO示例

阻塞:

importiowrap=io.FileIO('fake_file.txt','wb')buff=io.BufferedReader(wrap)buff.write(b'Random bytes')print(buff.fileno())print(buff.raw)print(buff.readable())buff.close()

非阻塞:

importasyncfileimportasyncioasyncdefno_block(file_path):wrap=asyncfile.AsyncFileIO(file_path,'rb')buff=asyncfile.AsyncBufferedReader(wrap)awaitbuff.read(-1)print(awaitbuff.fileno())print(buff.raw)print(awaitbuff.readable())awaitbuff.close()loop=asyncio.get_event_loop()loop.run_until_complete(no_block('fake_file.txt'))

阻塞:

importioforiinio.FileIO('fake_file.txt'):print(i)

非阻塞:

importasyncfileimportasyncioasyncdefasync_iteration():asyncforiinasyncfile.AsyncFileIO('fake_file.txt'):print(i)

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java如何从IBM MQ的JMSException检测可恢复错误   java Lucene6。4.2:找不到类,尝试添加查询。   Java Pdf差异库   在Java中多线程处理我的线程   java将字符串传递给Uri。下载中的parse()   java在列表中查找原语位置   java JPA条件从另一个查询中选择   java中的强制转换和转换   java如何在没有上下文的情况下获取SOAP Web服务(Apache Axis 1.4)的调用客户端的IP地址   java Android IllegalBlockSizeException:解密中最后一个块未完成   java Jersey是否要自定义无效资源路径的错误处理?   如何将JavaCVS web项目转换为基于maven的web项目?   java如何检查通用列表是否与jUnit相等?   arraylist java。util。尝试使用迭代器时发生ConcurrentModificationException错误   使用springsecurity,jsp上的java${u csrf.token}始终为空   sql使用java从临时表中选择数据   spring验证中的java@Notnull和@Pattern无效   java如何使用jQuery将包含对象数组的对象数组传递给Spring MVC控制器?