bytes = "abc123"
with open(file, 'rb') as in:
info = struct.unpack('<H', in.read(struct.calcsize('<H')))[0]
info2 = infile.read(info)
if info2 == SIGNATURE:
return如何在for循环~10k文件中快速打开文件--我只需要6-10个第一个字节来验证该文件之前是否加密,如果可能的话跳过它,只打开X字节--这对于每个文件来说都是快速的?
发布于 2014-08-02 19:30:01
正如BrenBarn所言,没有更多的事情要做了。我会将您的脚本更改为:
bytes = "abc123"
read_size = struct.calcsize('<H')
with open(file, 'rb') as infile:
info, = struct.unpack('<H', infile.read(read_size))
info2 = infile.read(info)
if info2 == SIGNATURE:
return这些更改很小,而且可能不会对执行时间造成重大影响,因为瓶颈是打开10k文件,但是避免不必要的函数/方法调用总是很好的,并且使用info选择第一个元素比使用稍微快一些。
编辑:刚刚注意到with语句in而不是infile在原始代码中。此外,修正了两个读取调用,以使用正确的变量。
发布于 2014-08-02 19:29:37
这不是Python限制,而是文件系统和操作系统限制。
如果您需要加快操作,那么最好首先将数据收集或索引到数据库中的某些快速访问结构,而不是尝试以原始格式访问数据。
https://stackoverflow.com/questions/25098519
复制相似问题