Python3 wifi模块返回对象,而不是wifi网络列表

don*_*off 2 python networking wifi python-3.x

我刚刚安装了 wifi 库,并开始按照此处的指南进行操作,但是当我输入时

>>> from wifi import Cell, Scheme
>>> Cell.all('wlan0')
Run Code Online (Sandbox Code Playgroud)

我得到的输出不是一个列表,而是一个对象:

<map object at 0x7ff23b40e588>
Run Code Online (Sandbox Code Playgroud)

我在 Ubuntu 14.04 上使用 Python 3.4,这似乎适用于 Python 2.7,这很好,但我更喜欢使用 3.4。如何使输出成为列表?我认为这只是不同 Python 版本以不同方式处理输出的情况。

编辑:我刚刚开始尝试再次弄清楚,现在当我这样做时

from wifi import Cell
Run Code Online (Sandbox Code Playgroud)

我明白了:

ImportError: cannot import name Cell
Run Code Online (Sandbox Code Playgroud)

我真的很困惑。

再次编辑:

没关系,那是我愚蠢。我制作了一个名为 wifi.py 的程序来测试它,忘记了 Python 中模块的整个想法。

Mos*_*oye 5

返回 a的all方法。在 Python 2.x 中,这将自动返回一个列表,但 Python 3.x 返回一个对象(一个迭代器),可以通过调用将其转换为列表。Cellmap(...)maplist

因此,您可以通过调用list返回的对象来查看 wifi 网络的完整列表:

>>> list(Cell.all('wlan0'))
Run Code Online (Sandbox Code Playgroud)

.

  • @DamiánCastro 它**不**返回原始列表,它返回原始列表的*浅拷贝*。如果您尝试修改结果,这很重要。 (2认同)