1 """Example of using Martel on a simple delimited file
2
3 """
4 import Martel
5 from Martel import RecordReader
6
8 assert len(delim) == 1, \
9 "delimiter can only be a single character long, not %s" % repr(delim)
10 assert delim not in "\n\r", "Cannot use %s as a delimiter" % repr(delim)
11
12 field = Martel.Group("field", Martel.Rep(Martel.AnyBut(delim + "\r\n")))
13
14 line = field + Martel.Rep(Martel.Str(delim) + field) + Martel.AnyEol()
15 record = Martel.Group("record", line)
16
17 format = Martel.ParseRecords("delimited", {}, record,
18 RecordReader.CountLines, (1,))
19 return format
20
21 tabformat = delimiter("\t")
22 spaceformat = delimiter(" ")
23 colonformat = delimiter(":")
24 commaformat = delimiter(",")
25
26 if __name__ == "__main__":
27 from xml.sax import saxutils
28 parser = colonformat.make_parser()
29 parser.setContentHandler(saxutils.XMLGenerator())
30 parser.parseFile(open("/etc/passwd"))
31