I know I can write a CSV file with something like:
with open('some.csv', 'w', newline='') as f:
How would I instead write that output to stdout
?
sys.stdout
is a file object corresponding to the program's standard output. You can use its write()
method. Note that it's probably not necessary to use the with
statement, because stdout
does not have to be opened or closed.
So, if you need to create a csv.writer
object, you can just say:
import sys
spamwriter = csv.writer(sys.stdout)
writer = csv.writer(sys.stdout, lineterminator=os.linesep)
Commented
Apr 3, 2019 at 12:25
lineterminator=os.linesep
makes no sense, as on Windows this is no-op. You probably meant lineterminator='\n'
, which is also NOT an obviously correct solution (see comments on this post). Reconfiguring sys.stdout to disable universal newlines handling is a possible alternative.