ASCII delimited files
William King
wjk at wjk.mv.com
Mon Nov 15 21:56:47 EST 1999
Roger Irwin wrote:
> Is there any function or module available for parsing ASCII delimited files,
> before I go and re-invent the wheel writing my own.
>
> BTW, I know it is simple to do, but I was thinking along the lines that a
> 'standard' could easily be substituted for a C version for large files.
#Was reading news and noted this discussion#on comma-delimited files so I
thought that maybe as a
#programming/python newbie I could try and contribute.
#CVT - comma delimited file input function
#read in lines of input - 1 line =='s 1 record
#pass line to function and return a list of fields
#double quotes are supposed to be in pairs (Beware cause some
#will backslash double quotes and put them in a data field) or
#data could be invalid because of a missing "
#may want to re.compile(pattern) and substitute this combo
#to something else.
#also note that it is also not uncommon to see a tab or comma
#delimited file with other character delimiters in a field
#ie. data,"data,data",data|data|data|data
#does seem a bit 'python_awkish' -- I apologize
from string import split
def comma_Cvt( aString ): #function to read cvt string
stop_N_go = 0 #create a guardian
newstr = "" #new string to
create
for s_Char in aString: #for loop for chars in
aString
if ( s_Char == '\"' ): #Look for " in
s_Char (character but really a string)
if ( stop_N_go == 0 ): #Set guardian to 1 or 0
stop_N_go = 1
continue #if 1st " guardian
to 1; cont.
else:
stop_N_go = 0 #if 2nd " guardian to
2; cont.
continue
if ( s_Char == ','): #if a , as char
if ( stop_N_go == 0 ): #if guardian is 0 set
the char
s_Char = '~~~' #to be ~~~ or
some other combo
newstr = newstr + s_Char #build a newstring
return split(newstr,'~~~') #return list broken up for more
I tried this out on a couple of lines to test and see if it works -- seems too
Anyhow, just an idea -- while I learn I might as well take a stab at stuff and
sorry
havn't learned objects yet ...... Oh yeah, thanks to all who have been kind
enough to
respond to some of my NEWBIE questions.
wjk
More information about the Python-list
mailing list