Why does trying to print directly to a file instead of sys.stdout
produce the following syntax error:
Python 2.7.2+ (default, Oct 4 2011, 20:06:09) [GCC 4.6.1] on linux2 Type "help", "copyright", "credits" or "license" for more information. >>> f1=open('./testfile', 'w+') >>> print('This is a test', file=f1) File "<stdin>", line 1 print('This is a test', file=f1) ^ SyntaxError: invalid syntax
From help(__builtins__) I have the following info:
print(...) print(value, ..., sep=' ', end='\n', file=sys.stdout) Prints the values to a stream, or to sys.stdout by default. Optional keyword arguments: file: a file-like object (stream); defaults to the current sys.stdout. sep: string inserted between values, default a space. end: string appended after the last value, default a newline.
So what would be the right syntax to change the standard stream print writes to?
I know that there are different maybe better ways to write to file but I really don't get why this should be a syntax error...
A nice explanation would be appreciated!
Python 2.7 (last version in 2. x ) is no longer under development and in 2020 will be discontinued. Python 3 is a newer version of the Python programming language which was released in December 2008. This version was mainly released to fix problems that exist in Python 2.
With the mode w as a second parameters, you can write to the file. fout = open('myoutput.txt', 'w') Note: If the file already exists, using open() will clear out everything in the file before writing to it. If the file doesn't exist, the function will create a new file.
If you want to use the print
function in Python 2, you have to import from __future__
:
from __future__ import print_function
But you can have the same effect without using the function, too:
print >>f1, 'This is a test'
print is a keyword in python 2.X. You should use the following:
f1=open('./testfile', 'w+') f1.write('This is a test') f1.close()
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With