Nikola Skoric wrote: > Hello everybody, > > I'd like to split a file by double newlines, but portably. Now, > splitting by one or more newlines is relatively easy: > > self.tables = re.split("[\r\n]+", bulk) > > But, how can I split on double newlines? I tried several approaches, > but none worked...
If you open the file in universal newline mode with with open(filename, "U") as f: bulk = f.read() your data will only contain "\n". You can then split with blocks = bulk.split("\n\n") # exactly one empty line or blocks = re.compile(r"\n{2,}").split(bulk) # one or more empty lines One last variant that doesn't read in the whole file and accepts lines with only whitespace as empty: with open(filename, "U") as f: blocks = ("".join(group) for empty, group in itertools.groupby(f, key=str.isspace) if not empty) -- http://mail.python.org/mailman/listinfo/python-list