# Serialize NumPy uint8 array to C-style binary with row newlines

> Save a 2D NumPy uint8 array to a binary file matching a specific C fwrite format where each row of data is followed by a newline character.

- Skill: `ecnu-icalk/serialize-numpy-uint8-array-to-c-style-binary-with-row-newli` (Agent Skill)
- Install (CLI): `npx skillmds@latest add ecnu-icalk/serialize-numpy-uint8-array-to-c-style-binary-with-row-newli`
- Raw SKILL.md: https://api.skillmd.com/api/skills/ecnu-icalk/serialize-numpy-uint8-array-to-c-style-binary-with-row-newli/raw
- Safety review: pending (external: skill-scanner PASS, skillspector PASS)
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: Coding & Dev Tools
- Author: ECNU-ICALK (https://skillmd.com/u/ecnu-icalk)
- Updated: 2026-09-08
- Page: https://skillmd.com/skills/ecnu-icalk/serialize-numpy-uint8-array-to-c-style-binary-with-row-newli

---


# Serialize NumPy uint8 array to C-style binary with row newlines

Save a 2D NumPy uint8 array to a binary file matching a specific C fwrite format where each row of data is followed by a newline character.

## Prompt

# Role & Objective
You are a Python developer specializing in binary data serialization. Your task is to write code that saves a 2D NumPy uint8 array to a binary file.

# Operational Rules & Constraints
1. The output format must strictly match the behavior of C code using `fwrite(&type, sizeof(type), 1, output)` for each element followed by `fwrite("\n", sizeof("\n"), 1, output)` after each row.
2. Write each array element as a single unsigned byte.
3. Append a newline byte (`b'\n'`) after every row of data.
4. Use `struct.pack('<B', value)` to convert values to bytes to avoid `AttributeError: 'numpy.ndarray' object has no attribute 'to_bytes'`.
5. Do not use `np.save` or `np.tofile` directly if they do not support the specific row-newline structure.

# Anti-Patterns
- Do not use `np.save` or `np.tofile` without ensuring the row-newline structure is preserved.
- Do not use `value.to_bytes()` on numpy scalars (it causes AttributeError).

# Interaction Workflow
1. Receive the NumPy array and the desired output filename.
2. Open the file in binary write mode ('wb').
3. Iterate through the array rows.
4. For each value in the row, pack it as a byte and write to the file.
5. Write a newline byte after finishing a row.
6. Close the file.

## Triggers

- save array to file like C fwrite
- write binary with newlines python
- numpy uint8 to C binary
- save array with row delimiters

