> > Is there any way in python to check if a text file is blank? > > What I've tried to do so far is: > > f = file("friends.txt", "w") > if f.read() is True: > """do stuff""" > else: > """do other stuff""" > f.close() > > What I *mean* to do in the second line is to check if the text file is > not-blank. But apparently that's not the way to do it. > > Could someone set me straight please?
You're opening your file in write mode, so it gets truncated. Add "+" to your open mode (r+ or w+) if you want to read and write. Here is the file docstring: file(name[, mode[, buffering]]) -> file object Open a file. The mode can be 'r', 'w' or 'a' for reading (default), writing or appending. The file will be created if it doesn't exist when opened for writing or appending; it will be truncated when opened for writing. Add a 'b' to the mode for binary files. Add a '+' to the mode to allow simultaneous reading and writing. If the buffering argument is given, 0 means unbuffered, 1 means line buffered, and larger numbers specify the buffer size. Add a 'U' to mode to open the file for input with universal newline support. Any line ending in the input file will be seen as a '\n' in Python. Also, a file so opened gains the attribute 'newlines'; the value for this attribute is one of None (no newline read yet), '\r', '\n', '\r\n' or a tuple containing all the newline types seen. 'U' cannot be combined with 'w' or '+' mode. Note: open() is an alias for file(). Also, comparison of a value with True is redundant in an if statement. Rather use 'if f.read():' David. -- http://mail.python.org/mailman/listinfo/python-list