# [Tutor] Saving file changes to output

Daniel Yoo dyoo@hkn.EECS.Berkeley.EDU
Wed, 2 Aug 2000 11:14:59 -0700 (PDT)

```On Wed, 2 Aug 2000, Daniel D. Laskey, CPA wrote:

> I've been struggling for the last couple of days on this problem.
> So it is not as if I am asking the group to do my homework for
> me.  Again, I'm a newbie.  I've been studing hard.  Maybe I'm just
> learning impaired.  Please be kind.

Don't apologize; we're not high priests or another authority figure!
Don't worry about it --- we're just learning here.

just wanted to look at a part of your program, to see if we can shorten it
a little:

x = string.split(line,',')
# read each line of file and split at each ","
f1 = x[4]
# pull out the fifth position 0,1,2,3,4 of each line
f2 = '"' + f1 + '"'
# put double quotes " " around this data
f3 = x[0]+","+x[1]+","+x[2]+","+x[3]+","+f2+","+x[5]
# print f3
# rebuild the file using the new position [4] with double quotes
out_file.write(line,f3)

There's a slightly shorter way of writing this.  Since you're quoting the
5th element (x[4]), you can say:

x = string.split(line,',')
x[4] = '"' + x[4] + '"'    # put double quotes around x[4]
f3 = x[0]+","+x[1]+","+x[2]+","+x[3]+","+x[4]+","+x[5]

Of course, this can be improved on, but it's already a little better.
The reason this is nicer is because we can take advantage of the
regularity in the last statement --- we're just rejoining all the elements
in that list back together.  Appropriately, we can use the string.join()
command, which works very closely with splitting.  The newest revision
looks like this:

x = string.split(line,',')
x[4] = '"' + x[4] + '"'    # quote x[4]
f3 = string.join(x, ",")

which is a little easier to read.  Commenting is often a virtue, but I
think you went a little wild on that part.  *grin*  Hope this helps!

```