Opposite of split

John Posner jjposner at optimum.net
Mon Aug 16 14:33:14 EDT 2010


On 8/16/2010 12:44 PM, Alex van der Spek wrote:
>
> Anybody catches any other ways to improve my program (attached), you are
> most welcome.

1. You don't need to separate out special characters (TABs, NEWLINEs, 
etc.) in a string. So:

   bt='-999.25'+'\t''-999.25'+'\t''-999.25'+'\t''-999.25'+'\t'+'-999.25'

... can be ...

   bt='-999.25\t-999.25\t-999.25\t-999.25\t-999.25'

BTW, I think you made a couple of "lucky errors" in this statement. 
Where there are two consecutive apostrophe (') characters, did you mean 
to put a plus sign in between? Your statement is valid because the 
Python interpreter concatenates strings for you:

    >>> x = 'foo''bar'
    >>> x == 'foobar'
    True

    >>> x = 'foo'  'bar'
    >>> x == 'foobar'
    True


2. Take a look at the functions in the os.path module:

   http://docs.python.org/library/os.path.html

These functions might simplify your pathname manipulations. (I didn't 
look closely enough to know for sure.)

3. An alternative to:

   alf.write(tp+'\t'+vf+'\t'+vq+'\t'+al+'\t'+bt+'\t'+vs+'\n')

   ... is ...

   alf.write("\t".join((tp, vf, vq, al, bt, vs)) + "\n")

4. I suggest using a helper function to bring that super-long 
column-heading line (alf.write('Timestamp ...) under control:

   def multi_field_names(base_name, count, sep_string):
       names = [base_name + " " + str(i) for i in range(1, count+1)]
       return sep_string.join(names)

HTH,
John



More information about the Python-list mailing list