Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

Problem

When trying to write out a GRIB or BUFR message to a file using codes_write, an error is generated (an exception is thrown)

Solution

You have written the following snippet to save a message into a binary file (GRIB or BUFR):

Code Block
languagepy
fout = open('temp.out', 'w')
codes_write(msg, fout)
fout.close()

The call to codes_write throws an exception:

Code Block
Traceback (most recent call last):
  File "encode.py", line 85, in <module>
    sys.exit(main())
  File "encode.py", line 74, in main
    example(sys.argv[1])
  File "encode.py", line 61, in example
    codes_write(msg, fout)
  ...
    fileobj.write(msg_bytes)
TypeError: write() argument must be str, not bytes


Panel
bgColor#fff
Make sure you are using the BINARY MODE for reading and writing
  1. Replace the 'w' with 'wb' in the call to open
  2. fout = open('temp.out', 'wb')
  3. This mode should be used for all files that do not contain text.

Content by Label
showLabelsfalse
max5
spacesUDOC
showSpacefalse
sortmodified
reversetrue
typepage
cqllabel = "python3" and label = "python3" and type = "page" and space = "UDOC"
labelspython3


Page properties
hiddentrue


Related issues