我在下面的代码中查找目录中的文件,并在转换为十六进制之前以二进制格式打开它们
现在它运行起来了,但我想让它更快,current需要4分钟来读取100k文件,但不需要多个处理器上的多线程,只是想知道有什么想法
def binary_file_reader(file_data):
with open(file_data, 'rb') as binary_file_data:
binary_file_data = binary_file_data.read()
binary_data = binascii.hexlify(binary_file_data)
binary_data = binary_data.decode("utf-8")
return binary_data
if __name__ == "__main__":
success_files_counted = 0
unsuccess_files_counted = 0
read_file_names = []
device_directory = os.getcwd()
for r, d, f in os.walk(device_directory):
for file in f:
try:
file_data = os.path.join(r, file)
binary_data = binary_file_reader(file_data)
read_file_names.append("Successful: "+r+file)
success_files_counted+=1
except IOError:
read_file_names.append("Unsuccessful: "+r+file)
unsuccess_files_counted+=1
Python concurrent.futures模块允许类型并行处理
使用10K文件评估任务加速的结果
代码
注意:由于issues with Windows Jupyter notebook,将多处理代码放在单独的文件中。这对于其他环境不是必需的
文件:multi_process_hexify.py(所有处理代码)
测试
文件:main.py
输出
相关问题 更多 >
编程相关推荐