From c8d114b9bc97ebdcc52219a929549f3134628a28 Mon Sep 17 00:00:00 2001 From: Jeremy Fincher Date: Mon, 4 Apr 2005 05:46:22 +0000 Subject: [PATCH] Added a few useful file functions. --- src/utils/file.py | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) diff --git a/src/utils/file.py b/src/utils/file.py index fb89153da..dd7bb4a15 100644 --- a/src/utils/file.py +++ b/src/utils/file.py @@ -36,6 +36,18 @@ import shutil import os.path from iter import ifilter +def writeLine(fd, line): + fd.write(line) + if not line.endswith('\n'): + fd.write('\n') + +def readLines(filename): + fd = file(filename) + try: + return [line.rstrip('\r\n') for line in fd.readlines()] + finally: + fd.close() + def mktemp(suffix=''): """Gives a decent random string, suitable for a filename.""" r = random.Random() @@ -64,6 +76,13 @@ def nonEmptyLines(fd): def nonCommentNonEmptyLines(fd): return nonEmptyLines(nonCommentLines(fd)) +def chunks(fd, size): + return iter(lambda : fd.read(size), '') +## chunk = fd.read(size) +## while chunk: +## yield chunk +## chunk = fd.read(size) + class AtomicFile(file): """Used for files that need to be atomically written -- i.e., if there's a failure, the original file remains, unmodified. mode must be 'w' or 'wb'"""