On 14 Dec 2005 15:39:02 -0800, [EMAIL PROTECTED] wrote: >thanks lawrence >it did work. >and i have one more question for you > >its printing the feilds name in the following way > >CompName >IpAddr >MacAddr > >that means each row its printing one field name, can i make it to print >each one of the field in different columns, in this way > >CompName IpAddr MacAddr > >and then to fill up the values for these fields , something like this > > >CompName IpAddr MacAddr >XXX 192.178.23.11 78.23.34.23.12 >YYY 192.189.22.11 89.23.43.12.34 >ZZZ 192.179.24.45 89.23.34.12.45 > >etc.
Ok, we'll copy your data: >>> data = """\ ... CompName IpAddr MacAddr ... XXX 192.178.23.11 78.23.34.23.12 ... YYY 192.189.22.11 89.23.43.12.34 ... ZZZ 192.179.24.45 89.23.34.12.45 ... """ and define a generator that will deliver the test data above as a rows in the form of lists of items, to simulate your source of rows: >>> def rowsource(): ... for line in data.splitlines(): ... yield line.split() ... See if that worked: >>> for row in rowsource(): print row ... ['CompName', 'IpAddr', 'MacAddr'] ['XXX', '192.178.23.11', '78.23.34.23.12'] ['YYY', '192.189.22.11', '89.23.43.12.34'] ['ZZZ', '192.179.24.45', '89.23.34.12.45'] Use csv with default options, which will separate with commas. Make a writer that will output back to the screen instead of a file, so we can see without having to mess with an actual file: >>> import csv >>> import sys >>> csv_writer = csv.writer(sys.stdout) # or supply file open for writing Write the same rows-as-item-lists as above: >>> for row in rowsource(): csv_writer.writerow(row) ... CompName,IpAddr,MacAddr XXX,192.178.23.11,78.23.34.23.12 YYY,192.189.22.11,89.23.43.12.34 ZZZ,192.179.24.45,89.23.34.12.45 Looks like nothing needed quoting, just comma separation. Try something different: >>> csv_writer.writerow(['has space', 2.5, "has,comma", >>> 'extra','fields','...']) has space,2.5,"has,comma",extra,fields,... Only the comma needed special treatment. >>> csv_writer.writerow(['empties:', None, '',[], (), {}, False]) empties:,,,[],(),{},False Looks like None and '' translate to the same empty fields (nothing between delimiting commas) but the other stuff is getting converted by str or repr (we'll check which below) >>> csv_writer.writerow(['empties:', None, '','(one comma for each separated >>> field)']) empties:,,,(one comma for each separated field) >>> csv_writer.writerow([.1]) 0.1 >>> .1 0.10000000000000001 Apparently it's str, not repr being used, so you may want to convert to string representation yourself, according to need. See also help(csv) for other options. HTH Regards, Bengt Richter -- http://mail.python.org/mailman/listinfo/python-list