AutoSkill 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.

install
source · Clone the upstream repo
git clone https://github.com/ECNU-ICALK/AutoSkill
Claude Code · Install into ~/.claude/skills/
T=$(mktemp -d) && git clone --depth=1 https://github.com/ECNU-ICALK/AutoSkill "$T" && mkdir -p ~/.claude/skills && cp -r "$T/SkillBank/ConvSkill/english_gpt3.5_8_GLM4.7/serialize-numpy-uint8-array-to-c-style-binary-with-row-newlines" ~/.claude/skills/ecnu-icalk-autoskill-serialize-numpy-uint8-array-to-c-style-binary-with-row-newl && rm -rf "$T"
manifest: SkillBank/ConvSkill/english_gpt3.5_8_GLM4.7/serialize-numpy-uint8-array-to-c-style-binary-with-row-newlines/SKILL.md
source content

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