Richard D. Moores, 15.07.2011 23:21:
On Sun, Jul 10, 2011 at 05:05, Peter Otten wrote:
>>> help(print)
shows
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.
I didn't know that printing to a file with print() was possible, so I tried
>>> print("Hello, world!", file="C:\test\test.txt")
Traceback (most recent call last):
File "<string>", line 1, in<fragment>
builtins.AttributeError: 'str' object has no attribute 'write'
>>>
And the docs at
<http://docs.python.org/py3k/library/functions.html#print> tell me
"The file argument must be an object with a write(string) method; if
it is not present or None, sys.stdout will be used."
What do I do to test.txt to make it "an object with a write(string) method"?
Oh, there are countless ways to do that, e.g.
class Writable(object):
def __init__(self, something):
print("Found a %s" % something))
def write(self, s):
print(s)
print("Hello, world!", file=Writable("C:\\test\\test.txt"))
However, I'm fairly sure what you want is this:
with open("C:\\test\\test.txt", "w") as file_object:
print("Hello, world!", file=file_object)
Look up "open()" (open a file) and the "with statement" (used here
basically as a safe way to make sure the file is closed after writing).
Also note that "\t" refers to a TAB character in Python, you used this
twice in your file path string.
Stefan
_______________________________________________
Tutor maillist - Tutor@python.org
To unsubscribe or change subscription options:
http://mail.python.org/mailman/listinfo/tutor