48 lines
1.3 KiB
Python
48 lines
1.3 KiB
Python
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()
|