这是我的密码:
def decode(filename):
with open(filename, "rb") as binary_file:
# Read the whole file at once
data = bytearray( binary_file.read())
for i in range(len(data)):
data[i] = 0xff - data[i]
with open("out.log", "wb") as out:
out.write(data)
我有一个大约10MB的文件,我需要通过翻转每一位来翻译这个文件,并将它保存到一个新文件中。你知道吗
使用我的代码翻译一个10MB的文件大约需要1秒,而使用C只需要不到1ms的时间
这是我的第一个python脚本。我不知道使用bytearray是否正确。最耗时的代码是bytearray的循环。你知道吗
如果使用
numpy
库是一个选项,那么使用它会更快,因为它可以通过一条语句对所有字节执行操作。在纯Python中对相对较大的数据量执行字节级操作,与使用类似于numpy
的模块(该模块是用C实现的,并针对数组处理进行了优化)相比,速度会相对较慢。你知道吗★尽管在Python 2中没有在Python 3中那么多(参见下面的结果)。
下面是我设置的一个框架,用它与您的问题中的代码进行基准测试。这看起来可能有很多代码,但大部分只是用于进行性能比较的脚手架的一部分。你知道吗
我鼓励其他回答这个问题的人也利用它。你知道吗
输出(Python 3):
输出(Python 2):
相关问题 更多 >
编程相关推荐