On Thu, Jan 22, 2009 at 2:33 PM, Judith Flores <jur...@yahoo.com> wrote: > Hello dear Python experts, > > How can I write a complete string (which sometimes will include many commas) > to a cell in a CSV file? With the code below, what I obtain is a cell per > letter of every string: > > > file1=open('myfile.csv','w') > writer=csv.writer(file1) > > mylist=[ " first , txt+words , more" , " second, text + words, and more"] > listnumbers=["0","5"] > > for i in range(0,len(mylist)): > > writer.writerow(mylist[i] + listnumbers[i])
The argument passed to writerow() is a sequence where each element of the sequence is one cell value. Here, you are passing a string as the argument. A string is a sequence of characters, so you are telling writerow() to write one character per cell. What you want to give writerow() is a list containing the two strings that you want placed in the two cells. Like this: writer.writerow([mylist[i], listnumbers[i]]) You could also use the zip() function and writerows() to do this more simply. zip(mylist, listnumbers) returns a list of pairs: In [3]: zip(mylist, listnumbers) Out[3]: [(' first , txt+words , more', '0'), (' second, text + words, and more', '5')] This is exactly the rows you want to write to the file, so writer.writerows(zip(mylist, listnumbers)) will do what you want without an explicit loop. Kent _______________________________________________ Tutor maillist - Tutor@python.org http://mail.python.org/mailman/listinfo/tutor