0

How do I specify the encoding during a print() statement?

Alan Bagel
  • 818
  • 5
  • 24

1 Answers1

3
print(*objects, sep=' ', end='\n', file=sys.stdout, flush=False)

print() calls file.write(), and file defaults to sys.stdout. sys.stdout is a file object whose write() method encodes strings according to its encoding property. If you reconfigure that property it'll change how strings are encoded when printed:

sys.stdout.reconfigure(encoding='latin-1')

Alternatively, you could encode the string yourself and then write the bytes to stdout's underlying binary buffer.

sys.stdout.buffer.write("<some text>".encode('latin-1'))

Beware that buffer is not a public property: "This is not part of the TextIOBase API and may not exist in some implementations."

John Kugelman
  • 349,597
  • 67
  • 533
  • 578