How to Write to a Binary File in Python? – Be on the Right Side of Change (2024)

by Chris

Problem Formulation

💬 Question: Given a binary string in your Python script, such as b'this is a binary string'. How to write the binary string to a file in Python?

For example, you may have tried a code snippet like this that will not work with file.write():

bin_str = b'this is a binary string'with open('my_file.bin', 'w') as f: f.write(bin_str)

Because this yields a TypeError:

Traceback (most recent call last): File "C:\...\code.py", line 3, in <module> f.write(bin_str)TypeError: write() argument must be str, not bytes

How to fix this?

Solution

To write a binary string to a binary file, you need to open the file in “binary write” mode using ‘wb’ as the second positional argument of the open() function. For instance, you’d write open('my_file.bin', 'wb') instead of open('my_file.bin', 'w'). Now, on the resulting file object f, you can use f.write(b'your binary string').

Here’s a minimal example that now correctly creates and writes into the binary file 'my_file.bin':

bin_str = b'this is a binary string'with open('my_file.bin', 'wb') as f: f.write(bin_str)

The resulting file looks like this:

How to Write to a Binary File in Python? – Be on the Right Side of Change (1)

Warning: If you use file.write() method, you’ll overwrite the contents of the file completely. And Python will not ask you again if you’re sure you want to proceed. So, use this only if you’re sure you want to override the file content.

Append Binary String to Binary File

If you want to append binary data to the end of a file without overwriting its content, you can open the file in append ('a') and binary ('b') mode using the expression open('my_file.bin', 'ab'). Then use file.write(bin_str) to append the bin_str to the end of the existing file.

Here’s an example:

bin_str = b'this is a binary string'with open('my_file.bin', 'ab') as f: f.write(bin_str)

After running this code snippet, the binary file now contains the same content twice — the original content hasn’t been overwritten due to the use of the append mode:

How to Write to a Binary File in Python? – Be on the Right Side of Change (2)

🌎 Recommended Tutorial: How to Append to the End of a File?

How to Write to a Binary File in Python? – Be on the Right Side of Change (3)

While working as a researcher in distributed systems, Dr. Christian Mayer found his love for teaching computer science students.

To help students reach higher levels of Python success, he founded the programming education website Finxter.com that has taught exponential skills to millions of coders worldwide. He’s the author of the best-selling programming books Python One-Liners (NoStarch 2020), The Art of Clean Code (NoStarch 2022), and The Book of Dash (NoStarch 2022). Chris also coauthored the Coffee Break Python series of self-published books. He’s a computer science enthusiast, freelancer, and owner of one of the top 10 largest Python blogs worldwide.

His passions are writing, reading, and coding. But his greatest passion is to serve aspiring coders through Finxter and help them to boost their skills. You can join his free email academy here.

How to Write to a Binary File in Python? – Be on the Right Side of Change (2024)

FAQs

How to modify a binary file in Python? ›

Step 1: Searching for the word in the binary file. Step 2: While searching in the file, the variable “pos” stores the position of file pointer record then traverse(continue) reading of the record. Step 3: If the word to be searched exists then place the write pointer (to ending of the previous record) i.e. at pos.

How to convert text file to binary file in Python? ›

Until the end of the text file is reached perform the following steps:
  1. Read a line from the input text file, into 3 variables using fscanf().
  2. The structure variable is set to values for elements(to write the structure variable into the output file.
  3. Write that structure variable to the output binary file using fwrite().
Jul 21, 2021

How to update data in a binary file? ›

To update data in a binary file, we can use methods like write() or writelines(), just like in text files. However, we need to open the file in read and write mode (“rb+” or “wb+”) instead of read mode (“rb”) or write mode (“wb”).

How do I write binary data to a file? ›

To write a binary file in C++ use write() method. It is used to write a given number of bytes on the given stream, starting at the position of the "put" pointer. The file is extended if the put pointer is currently at the end of the file.

How to read and write a binary file in Python? ›

To read a binary file in Python, first, we need to open it in binary mode ('”rb”'). We can use the 'open()' function to achieve this. To create a binary file in Python, You need to open the file in binary write mode ( wb ). For more refer to this article.

How do I edit a binary file? ›

To edit a resource
  1. Select the byte you want to edit. The Tab key moves the focus between the hexadecimal and ASCII sections of the Binary Editor. ...
  2. Type the new value. The value changes immediately in both the hexadecimal and ASCII sections and focus shifts to the next value in line.
Oct 16, 2023

How do you write bytes to a binary file in Python? ›

Write Bytes to File in Python

Example 1: Open a file in binary write mode and then specify the contents to write in the form of bytes. Next, use the write function to write the byte contents to a binary file.

What is the syntax for binary conversion in Python? ›

Python bin() Function

The bin() function returns the binary version of a specified integer. The result will always start with the prefix 0b .

How to take binary input in Python? ›

Use int(<input>, 2) function to read the binary formatted input into variable in the program. And, to print this value in binary format again then we need to use format() method as explained below. binary1 = int(raw_input(), 2) #binary1 will have given binary input in hexa decimal format.

How is text converted into binary data? ›

A code where each number represents a character can be used to convert text into binary. One code we can use for this is called ASCII. A 7-bit character set used for representing English keyboard characters.. The ASCII code takes each character on the keyboard and assigns it a binary number.

What is the bin function in Python? ›

The bin () function in Python is used to convert and obtain an integer value's binary string equivalent form. The integer value needs to be passed as a parameter of the bin () function to return the binary value.

Can a binary file be edited? ›

By default, we cannot view or edit binary files with normal programs or text editors. Instead, we need special utilities and hex editors to access binary files. Let's explore some of these utilities and see how we can use them to edit binary files.

What is a text file and binary file in Python? ›

There are mainly two types of data files — text file and binary file. A text file consists of human readable characters, which can be opened by any text editor. On the other hand, binary files are made up of non-human readable characters and symbols, which require specific programs to access its contents.

What is the extension of binary file in Python? ›

In general, executable -- or ready-to-run -- programs are identified as binary files and given a filename extension such as . bin or .exe.

How to write string to a file in Python? ›

Writing to a File
  1. Problem. You want to write text or data to a file.
  2. Solution. Here is the most convenient way to write one big string to a file: open('thefile.txt', 'w').write(all_the_text) # text to a text file open('abinfile', 'wb').write(all_the_data) # data to a binary file. ...
  3. Discussion. ...
  4. See Also.

How to write bytes to a text file in Python? ›

To write the bytes directly to a file without having to encode, you'll need the built-in open() function, and you'll need to ensure that you use write binary mode. 00:57 So first, with open('"example. html"') and then you want to set the mode to write binary, which is "wb" .

How to write a byte in Python? ›

Python bytes are a sequence of integers in the range of 0-255. You can create bytes in Python using the bytes() function or a bytes literal. In this example, we're creating a bytes object in Python using the bytes() function. We pass a list of integers, each representing a byte.

Top Articles
Latest Posts
Article information

Author: Foster Heidenreich CPA

Last Updated:

Views: 6509

Rating: 4.6 / 5 (56 voted)

Reviews: 87% of readers found this page helpful

Author information

Name: Foster Heidenreich CPA

Birthday: 1995-01-14

Address: 55021 Usha Garden, North Larisa, DE 19209

Phone: +6812240846623

Job: Corporate Healthcare Strategist

Hobby: Singing, Listening to music, Rafting, LARPing, Gardening, Quilting, Rappelling

Introduction: My name is Foster Heidenreich CPA, I am a delightful, quaint, glorious, quaint, faithful, enchanting, fine person who loves writing and wants to share my knowledge and understanding with you.