Python: list(data) 在读取二进制文件时在终端中输出列表两次。这是一个错误吗?

Python: list(data) outputs list twice in terminal when reading a binary file. Is it a bug?

我试图创建自己的十六进制编辑器,列出从 Veracrypt 生成的二进制文件的统计信息。 (我还在学习中。)

文件:Statistics.py

import Statistics
data = open('VERASHORT', 'rb').read()
print(list(data))

无论如何,上面的代码将以列表格式打印二进制文件的十六进制两次。它只有三行代码,但我想知道为什么它不起作用。我已经修改了作者的代码,所以它应该可以工作。 (学习Python)

这是 Python3 之后的输出 运行。 (列表出现两次。)

[0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 102, 102, 62, 90, 121, 113, 111, 92, 85, 102, 102, 102, 102, 102, 102, 102, 102, 52, 32, 38, 92, 85, 102, 102, 102, 102, 102, 102, 102, 102]
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 102, 102, 62, 90, 121, 113, 111, 92, 85, 102, 102, 102, 102, 102, 102, 102, 102, 52, 32, 38, 92, 85, 102, 102, 102, 102, 102, 102, 102, 102]

"import Statistics" 是原因。

您只需加载 Statistics.py 两次,然后执行该代码两次。

顺便说一句,Python 包需要小写 https://www.python.org/dev/peps/pep-0008/#package-and-module-names

补充:问题已解决

  1. 我已经将 Statistics.py 编辑成 Stat.py,这意味着该模块不会自行导入!!

  2. 发生错误,我第一行代码中的统计信息导入应该是小写的!!于是,我改了。

  3. list(data) 不需要任何导入!!

这就是我搞砸的地方,感谢您的帮助。 (提示确实帮助我快速得出结论!!)