When I do at the interpreter prompt, repr( open('/etc/motd', 'rt').read() ) i get # 1 #:
"'\\nThe programs included with the Debian GNU/Linux system are free software;\\nthe exact distribution terms for each program are described in the\\nindividual files in /usr/share/doc/*/copyright.\\n\\nDebian GNU/Linux comes with ABSOLUTELY NO WARRANTY, to the extent\\npermitted by applicable law.\\n'" whereas if i just do: open('/etc/motd', 'rt').read() i get # 2 #: '\nThe programs included with the Debian GNU/Linux system are free software;\nthe exact distribution terms for each program are described in the\nindividual files in /usr/share/doc/*/copyright.\n\nDebian GNU/Linux comes with ABSOLUTELY NO WARRANTY, to the extent\npermitted by applicable law.\n' --------------- With # 2 # read returns a string that the interpreter displays by calling __str__ via print so newlines are converted to \n. What is happening with # 1 # (repr)? repr calls __repr__ which gives you bytes.. why does this result in \\n -- https://mail.python.org/mailman/listinfo/python-list