问题标签 [python-aiofiles]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
195 浏览

python - 寻求解释 async with/for 的优点

我是异步的新手。我最近遇到了 AIOFiles ( https://github.com/Tinche/aiofiles ),并在文档中看到它支持“async with”和“async for”。我想了解它,但除了 PEP 492 之外没有太多好的报道,它没有详细介绍。

PEP 492 相关部分的快捷方式:

https://www.python.org/dev/peps/pep-0492/#asynchronous-context-managers-and-async-with

https://www.python.org/dev/peps/pep-0492/#asynchronous-iterators-and-async-for

如果有人不介意回答,我有很多问题:

  1. 我提到的异步迭代器/上下文管理器唯一明显的好处是您可以在其所需的魔术方法的实现中使用可等待对象。我错过了什么还是就是这样?

  2. 在关于异步上下文管理器的 PEP 492 中,它说“异步上下文管理器是能够在其进入和退出方法中暂停执行的上下文管理器。” 这是指使用等待调用协程吗?

0 投票
1 回答
71 浏览

python - 从 txt 文件读取并执行 os 命令

我想要实现的是从 TXT 文件中读取 IP/域并执行操作系统导入命令,然后在 ping 时添加 IP/域。

但是问题是,由于某种原因,它在从 TXT 文件读取的 IP/域的末尾放置了一个句点,导致在 pining 时请求无效(代码有效,唯一的问题是末尾的句点)

例如:当 ping 行在编译器上执行时,它告诉我“google.com 参数错误”。然而,在它自己的 txt 文件中,只有一个句点是它自己的 .com 句点。

完整代码请访问 github:https ://github.com/Hontiris1/IPPing/blob/master/Ping.py

0 投票
1 回答
847 浏览

python - 如何使用 aiofiles 限制并发读/写的数量?

我的程序会同时使用aiohttp下载大约 1000 万条数据,然后将数据写入磁盘上大约 4000 个文件。

我使用aiofiles库是因为我希望我的程序在读/写文件时也能做其他事情。

但是我担心如果程序尝试同时写入所有 4000 个文件,硬盘就不能那么快地完成所有写入。

是否可以使用 aiofiles(或其他库)限制并发写入的数量?aiofiles 已经这样做了吗?

谢谢。

测试代码:

0 投票
1 回答
518 浏览

python - 使用 asyncio aiofiles 解析大量 HTML 文件并在 pandas DataFrame 中解析它们

我在磁盘上有大约 40 000 个 HTML 文件,并使用 Beautiful Soup 解析 HTML 并返回每个 HTML 的字典。在读取/解析期间,我将所有字典附加到列表中,并在最后创建 pandas DataFrame。

在同步模式下一切正常,但运行时间很长,所以我想用aiofiles运行

目前我的代码如下所示:

我得到的错误是:

文件“C:/Users/.../test.py”,第 208 行,在 getFullAdSoup 返回 await adFullFInfo TypeError: object dict can't be used in 'await' expression

我在这里找到了类似的问题,但我无法让它发挥作用。我不知道如何将解析函数转换为异步模式以及如何迭代调用该函数的文件。

0 投票
1 回答
1025 浏览

python - 如何使用 aiofiles 异步腌制大量文件?

我有一个我想写出的列表data,每个项目都有一个文件,如下所示:

由于数据列表可能很长,并且我正在写入网络存储位置,因此我花费大量时间等待 NFS 中的迭代,如果可能的话,我希望异步执行此操作。

我现在基本上看起来像这样:

现在,当我测试写入时,这看起来足够快,值得在我的 NFS 上使用:

但是当我实际 /de/-serialize 我写的数据时,我发现它可能很快,因为它没有写任何东西:

好,而:

即异步写入的文件为空。怪不得这么快。

我怎样才能将我的列表异步挖掘/腌制到文件中并让它们实际写入?我想我需要以某种方式等待 dill.dump 吗?我认为 fout.flush 会处理这个问题,但似乎不是。

0 投票
1 回答
1047 浏览

python - 异步版本运行速度比非异步版本慢

我的程序执行以下操作:

  1. 获取 .txt 文件的文件夹
  2. 对于每个文件:

    2.1。读取文件

    2.2 将内容排序为列表并将列表推送到主列表

我没有任何异步/等待就这样做了,这些是时间统计

使用下面的异步/等待代码,我得到

鉴于用例表明我使用 aysncio 不正确。

有人知道我做错了什么吗?

剖析信息:


制作一些测试文件...

0 投票
0 回答
61 浏览

python - 什么情况下异步读取单个文件有好处?

我是python AIO的新手,正在努力学习。我正在查看aiofiles 示例

想知道在什么情况下异步读取单个文件是有意义的?我知道 IO 操作会让 CPU 做其他事情,但这如何转化为性能优势?

0 投票
1 回答
583 浏览

python-aiofiles - 等待 aiofiles.os.remove() 返回 TypeError: object NoneType can't be used in 'await' expression

我正在尝试从本地目录中异步删除文件;但是,我收到以下错误: object NoneType can't be used in 'await' expression ()

我正在使用 ver aiofiles 0.5.0 和 Python 3.6.5

我的代码很简单:

0 投票
1 回答
71 浏览

python - 在特定路径上写入文件的问题

我尝试通过指定要保存的文件夹的路径将文件写入磁盘。但是我得到了通过指定路径读取文件的错误。

此行发生错误。

为清楚起见,我进行了打印调用,指示了正文函数中的路径

0 投票
1 回答
239 浏览

python-asyncio - 为异步 aiohttp 和 aio 文件编写单元测试

我是 asyncio 的新手。我正在使用 aiohttp 和 aiofiles 来下载图像。如何为这两个编写单元测试。