import array import json import binascii from ctypes import create_string_buffer import struct import numpy as np from public_function import print_cost_time # arr = np.random.randint(1024 ** 2, size=(1280, 1280)) # arr_list = arr.tolist() # with open("111.json", "w") as f: # with print_cost_time(): # f.write(json.dumps(arr_list)) # # with print_cost_time(): # with open("111.json", "r") as f: # json.load(f) m, n = 1, 2 m = n = 2560 max_value = 1024 ** 2 arr = np.random.randint(max_value, size=(m, n), dtype=np.uint64) print(arr) data_list = arr.tolist() # data_list = [[10, 8, 1, 1]] # print(data_list) target_file = "mpi_heatmap.{}_{}.dat".format(m, n) with print_cost_time("写"): with open(target_file, "wb") as f: fmt = "<" + "Q" * len(data_list) for row in data_list: f.write(struct.pack(fmt, *row)) # for item in row: # bin_str = struct.pack('<Q', item) # # print(bin_str) # f.write(bin_str) # with open(target_file, "rb") as f: # bin_str = f.read() # print(bin_str) arr = array.array("Q") for row in data_list: arr.extend(row) with print_cost_time("用array写"): with open(target_file, "wb") as f: arr.tofile(f) with print_cost_time("读"): arr = np.fromfile(target_file, dtype=np.uint64) arr = arr.reshape((m, -1)) print(arr) # buffer = create_string_buffer(7) # struct.pack_into("!B", buffer, 0, 10) # struct.pack_into("!H", buffer, 1, 11) # struct.pack_into("!I", buffer, 3, 12) # print(binascii.hexlify(buffer)) # # buffer = create_string_buffer(7) # struct.pack_into("@B", buffer, 0, 10) # struct.pack_into("@H", buffer, 1, 11) # struct.pack_into("@I", buffer, 3, 12) # print(binascii.hexlify(buffer)) # # buffer = create_string_buffer(7) # struct.pack_into("=B", buffer, 0, 10) # struct.pack_into("=H", buffer, 1, 11) # struct.pack_into("=I", buffer, 3, 12) # print(binascii.hexlify(buffer)) # # buffer = create_string_buffer(7) # struct.pack_into(">B", buffer, 0, 10) # struct.pack_into(">H", buffer, 1, 11) # struct.pack_into(">I", buffer, 3, 12) # print(binascii.hexlify(buffer)) # # buffer = create_string_buffer(7) # struct.pack_into("<B", buffer, 0, 10) # struct.pack_into("<H", buffer, 1, 11) # struct.pack_into("<I", buffer, 3, 12) # print(binascii.hexlify(buffer))
list or array to file
最新推荐文章于 2023-01-17 07:30:00 发布