<[EMAIL PROTECTED]> wrote in message news:[EMAIL PROTECTED] > On Aug 4, 6:35?pm, SMERSH009 <[EMAIL PROTECTED]> wrote: >> Hi All. >> Let's say I have some badly formatted text called doc: >> >> doc= >> """ >> friendid >> Female >> >> 23 years old >> >> Los Gatos >> >> United States >> friendid >> Male >> >> 24 years old >> >> San Francisco, California >> >> United States >> """ >> >> How would I get these results to be displayed in a format similar to: >> friendid;Female;23 years old;Los Gatos;United States >> friendid;Male; 24 years old;San Francisco, California;United States >> >> The latter is a lot easier to organize and can be quickly imported >> into Excel's column format. >> >> Thanks Much, >> Sam > > d = doc.split('\n') > > f = [i.split() for i in d if i] > > g = [' '.join(i) for i in f] > > rec = [] > temprec = [] > for i in g: > if i: > if i == 'friendid': > rec.append(temprec) > temprec = [i] > else: > temprec.append(i) > rec.append(temprec) > > output = [';'.join(i) for i in rec if i] > > for i in output: print i > > ## friendid;Female;23 years old;Los Gatos;United States > ## friendid;Male;24 years old;San Francisco, California;United States
also, I would suggest you use CSV format. CSV stands for "Comma Seperated Variable" and Excel can load such a sheet directly. Instead of seperating using ; seperate using , Of course, this provides a problem when there is a , in a string. Resolution is to quote the string. Being such, you can just go ahead and quote all strings. So you would want the output to be: "friendid","Female","23 years old","Los Gatos","United States" "friendid","Male","24 years old","San Francisco, California","United States" Numbers should not be quoted if you wish to treat them as numeric and not text. -- http://mail.python.org/mailman/listinfo/python-list