import numpy as np import numpy.lib.format as fmt import argparse import os import sys def main(): parser = argparse.ArgumentParser(description="讀取 .npy 檔並輸出內容 (診斷模式)") parser.add_argument("npy_path", help="要讀取的 .npy 檔案路徑") args = parser.parse_args() npy_path = args.npy_path if not os.path.isfile(npy_path): print(f"Error: 檔案不存在:{npy_path}") sys.exit(1) size = os.path.getsize(npy_path) print(f"File size: {size} bytes") if size == 0: print("Error: 檔案是空的,請確認產生並儲存時沒有錯誤。") sys.exit(1) # 嘗試只讀 header with open(npy_path, 'rb') as f: try: version = fmt.read_magic(f) header = fmt._read_array_header(f, version) print("成功讀取 header:", header) except Exception as e: print("讀 header 失敗:", e) try: data = np.load(npy_path, allow_pickle=True) except Exception as e: print(f"載入失敗:{e}") sys.exit(1) print(f"Loaded data from: {npy_path}") print(f"Data type: {type(data)}") if isinstance(data, np.ndarray): print(f"Array shape: {data.shape}") print(f"Array dtype: {data.dtype}") print("Contents:") print(data) if __name__ == "__main__": main()