f.write vs print f

2024/11/19 9:09:52

There are at least two ways to write to a file in python:

f = open(file, 'w')
f.write(string)

or

f = open(file, 'w')
print >> f, string     # in python 2
print(string, file=f)  # in python 3

Is there a difference between the two? Or is any one more Pythonic? I'm trying to write a bunch of HTML to file so I need a bunch of write/print statements through my file(but I don't need a templating engine).

Answer

print does things file.write doesn't, allowing you to skip string formatting for some basic things.

It inserts spaces between arguments and appends the line terminator.

print "a", "b" # prints something like "a b\n"

It calls the __str__ or __repr__ special methods of an object to convert it to a string.

print 1 # prints something like "1\n"

You would have to manually do these things if you used file.write instead of print.

https://en.xdnf.cn/q/26384.html

Related Q&A

How can I send a message to someone with my telegram bot using their Username

I am using the telepot python library, I know that you can send a message when you have someones UserID(Which is a number). I wanna know if it is possible to send a message to someone without having th…

Convert a str to path type?

I am trying to interface with some existing code that saves a configuration, and expects a file path that is of type path.path. The code is expecting that the file path is returned from a pygtk browse…

Partially transparent scatter plot, but with a solid color bar

In Python, with Matplotlib, how to simply do a scatter plot with transparency (alpha < 1), but with a color bar that represents their color value, but has alpha = 1?Here is what one gets, with from…

Semaphores on Python

Ive started programming in Python a few weeks ago and was trying to use Semaphores to synchronize two simple threads, for learning purposes. Here is what Ive got: import threading sem = threading.Semap…

Overload () operator in Python

I am trying to learn currying in Python for my class and I have to overload the () operator for it. However, I do not understand how can I can go about overloading the () operator. Can you explain the …

Python pandas apply function if a column value is not NULL

I have a dataframe (in Python 2.7, pandas 0.15.0):df=A B C 0 NaN 11 NaN 1 two NaN [foo, bar] 2 three 33 NaNI want to apply a simple function for ro…

python pip trouble installing from requirements.txt

Ive had great luck with pip in the past, but working at installing some stuff in a venv on is giving me some headaches. I keep getting errors likeNo distributions at all found for somepackage Storing d…

Using py.test with coverage doesnt include imports

For Jedi we want to generate our test coverage. There is a related question in stackoverflow, but it didnt help.Were using py.test as a test runner. However, we are unable to add the imports and other…

Determine if a Python class is an Abstract Base Class or Concrete

My Python application contains many abstract classes and implementations. For example:import abc import datetimeclass MessageDisplay(object):__metaclass__ = abc.ABCMeta@abc.abstractpropertydef display(…

Pandas printing ALL dtypes

This seems like a very simple problem, however its driving me round the bend. Im sure it should be solved by RTFM, but Ive looked at the options and I can see the one to fix it.I just want to print the…