How to Fix Byte-like Object Required Error in Python

Here is a way to fix TypeError: a bytes-like object is required, not 'str.'  The error occurs while writing a file due to incorrect usage of the file mode. Below, you'll see how to solve this error.


Bye-like Object Error

  

Opening a file in write mode


Here's a way to open files in write mode. The "wb" mode's purpose is to write input to a file. If the file does not exist, it creates one.  


After executing it, it throws an error highlighted in red. The file mode causes to error. Below, you'll see how to fix it and the details.

a=open("file1.txt", 'wb')

b=a.write('I am writing data to a file!')

print(b)



Traceback (most recent call last):

 File "main.py", line 2, in <module>

  b=a.write('I am writing data to a file!')

TypeError: a bytes-like object is required, not 'str'


** Process exited - Return Code: 1 **

Press Enter to exit terminal



What's the python file write method


You can write data to a file in two ways a string or bytes. The mode you have chosen here is "wb." Which means it allows only binary data. You have attempted to write string data. This causes the error.


How to fix the error


Way 1:


Chnage the file mode to "W." Then it will run without the error.


a=open("file1.txt", mode="w" )

a.write("I am writing data to a file!")

a=open("file1.txt", mode="r" )

c=a.read()

print(c)


I am writing data to a file!


** Process exited - Return Code: 0 **

Press Enter to exit terminal


Way 2:


Keep the same file mode. And supply binary input. 


a=open("file1.txt", mode="wb" )

a.write(b'I am writing data to a file!')

a=open("file1.txt", mode="r" )

c=a.read()

print(c)


I am writing data to a file!


** Process exited - Return Code: 0 **

Press Enter to exit terminal


The outline is you can fix the error [bytes-like object is required] using the above two methods in Python.



Related

Post a Comment

Thanks for your message. We will get back you.

Previous Post Next Post